主界面函式快速回圈往資料庫里寫資料
write_data(pBuffer2, temp1, length1);
其中的temp1放在單獨的cpp里中一個函式作集中處理
void unix_to_date(unsigned long long time, char * date)
{
unsigned long long second = time / 1000;
unsigned int milli = time % 1000;
time_t timeT = (time_t)second;
if (timeT>100000000000)
{//輸出除錯資訊
}
struct tm *ptime;
ptime=localtime(&timeT);
if (ptime == NULL)
{//輸出除錯資訊
}
strftime(date, DATE_TIME_STRING_LENGTH + 1, "%Y-%m-%d %H:%M:%S", ptime);//這里的data是需要最終要回傳的時間資料
//strftime(date, 100, "%Y-%m-%d %H:%M:%S", ptime);
char milli_str[5];
sprintf(milli_str, ".%03d", milli);
strcat(date, milli_str);
}
程式執行程序中(回圈寫入非常快),到一定時間就會崩潰,問題出在ptime為空值,查看timeT和傳遞的time值為一個很大的值,此時如何查看主界面函式中的出問題的值,添加監事提示超出范圍!!
由于程式運行很快,看不清到底主界面執行到哪次回圈出的問題,而且這個回圈次數是很大的
uj5u.com熱心網友回復:
添加 ASSERT 斷言, 除錯版本下就會彈窗, 然后點擊重試就可以看呼叫堆疊了if(xxxxxx )
{
//引數錯誤
ASSERT(FALSE);
}
uj5u.com熱心網友回復:
學習了
uj5u.com熱心網友回復:
貌似不行,還有別的招么?uj5u.com熱心網友回復:
ptime=localtime(&timeT);ASSERT(ptime != NULL );
uj5u.com熱心網友回復:
ASSERT以后可查看?uj5u.com熱心網友回復:
Convert a time value and correct for the local time zone. More secure versions of these functions are available; see localtime_s, _localtime32_s, _localtime64_s.也就是 localtime 可能有不安全因素, 建議使用 localtime_s
uj5u.com熱心網友回復:
條件斷點,在斷點上點右鍵,設定條件。uj5u.com熱心網友回復:
DebugBreak();轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/38797.html
標籤:基礎類
