c 異常崩潰記錄1

2021-10-23 09:45:24 字數 678 閱讀 1658

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 中,註冊訊息處理函式,處理崩潰資訊,寫入本地。註冊訊息處理函式的處理方法,處理崩潰資訊,...