最近花了差不多1天的时间在折腾一个Bug,该Bug的表象如下:
这个Bug还特别独特,在开发电脑中无提示,在终端用户那里每次使用软件的时候都报这个。仔细思考了一下最近在源码中新添加的功能,没发现有啥特别明显的问题。于是,根据字面意思的理解是“运行时错误”,所以一开始解决这个问题的思路是将所有应用程序的运行时拷贝至应用程序目录。尝试过之后,依然报这个异常。分析可能跟运行时的动态链接库没有关系。于是,调整解决问题的思路,考虑将工程中新添加的代码进行分割。部分部分的测试新添加的代码到底那里有问题,排查到最后是这个函数内部发生了异常。异常函数的代码如下:
void CleanSerialPort() { if(g_hEvent != NULL) { CloseHandle(g_hEvent); g_hEvent = NULL; } if(g_SerialPort.IsOpen()) { COMMPROP properties; memset(&properties, 0, sizeof(properties)); g_SerialPort.GetProperties(); g_SerialPort.ClearWriteBuffer(); g_SerialPort.ClearReadBuffer