最近花了差不多1天的時間在折騰一個Bug,該Bug的表象如下: 

Android培訓,安卓培訓,手機開發(fā)培訓,移動開發(fā)培訓,云培訓培訓

Android培訓,安卓培訓,手機開發(fā)培訓,移動開發(fā)培訓,云培訓培訓

這個Bug還特別獨特,在開發(fā)電腦中無提示,在終端用戶那里每次使用軟件的時候都報這個。仔細思考了一下最近在源碼中新添加的功能,沒發(fā)現(xiàn)有啥特別明顯的問題。于是,根據(jù)字面意思的理解是“運行時錯誤”,所以一開始解決這個問題的思路是將所有應用程序的運行時拷貝至應用程序目錄。嘗試過之后,依然報這個異常。分析可能跟運行時的動態(tài)鏈接庫沒有關系。于是,調整解決問題的思路,考慮將工程中新添加的代碼進行分割。部分部分的測試新添加的代碼到底那里有問題,排查到最后是這個函數(shù)內部發(fā)生了異常。異常函數(shù)的代碼如下:

Android培訓,安卓培訓,手機開發(fā)培訓,移動開發(fā)培訓,云培訓培訓

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