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

Android培訓(xùn),安卓培訓(xùn),手機(jī)開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn),云培訓(xùn)培訓(xùn)

Android培訓(xùn),安卓培訓(xùn),手機(jī)開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn),云培訓(xùn)培訓(xùn)

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

Android培訓(xùn),安卓培訓(xùn),手機(jī)開發(fā)培訓(xùn),移動(dòng)開發(fā)培訓(xùn),云培訓(xùn)培訓(xùn)

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
        
		

網(wǎng)友評(píng)論