class localrecordingclient
; //gdb 除錯崩潰到這裡
void setruning(bool brun);
...private:
bool m_brun;
pthread_t m_pthread;
linuxlock m_lockrun;
...u_int8_t videodata[500*1024];
};呼叫執行緒鎖崩潰了,我首先想到的是鎖的父類指標被釋放了,但是經過檢視**發現父類指標沒有被釋放
u_int8_t videodata[500*1024];
這個記憶體太大了,可能異常情況會影響這個類的記憶體,我就嘗試著把它換成指標,但還是成員變數,發現又崩潰到了另乙個地方,感覺這樣修改有效果但是還是存在問題,然後我就在呼叫它的地方建立下,用完釋放問題就解決了
這個是子執行緒中呼叫的,而且會一路攝像頭開啟乙個
uint8_t* videodata = (uint8_t*)malloc(500*1024);
memset(videodata,0,500*1024);
while (this->isruning())
free(videodata);
問題雖然解決了,而且確實覺得之前的方式有問題(只是經驗加直覺),但是卻不是很明白到底為啥,有知道問題的歡迎討論
異常崩潰碼對照
硬體異常即由cpu引發的異常,windows定義了以下的硬體異常 異常 值描述exception access violation 0xc0000005 程式企圖讀寫乙個不可訪問的位址時引發的異常。例如企圖讀取0位址處的記憶體。exception array bounds exceeded 0xc0...
C 記錄程式崩潰時的dumpfile
新上線的軟體在外場偶爾會出現異常崩潰的情況。由於試用範圍比較分散,很難一一前往現場定位問題。而傳統的log日誌方法,在崩潰的情況下,並不能比較準確的表示出問題位置,這使得軟體除錯程序緩慢。後在公司前輩的指點下,我們想到了使用window自帶的dumpfile來記錄崩潰時刻的堆疊資訊,這樣配合log日...
iOS崩潰 捕獲異常處理
之前部落格介紹啦一種異常捕獲後彈窗提示使用者的方法,ios崩潰 捕獲異常處理 下面提供另外一種異常捕獲的方法。原理一致,但實現略有不同。可供參考。1 在didfinishlaunchingwithoptions 中,註冊訊息處理函式,處理崩潰資訊,寫入本地。註冊訊息處理函式的處理方法,處理崩潰資訊,...