除錯方法:
1、使用debug,檢視記憶體,可以掛起其它執行緒,只執行疑有問題執行緒。
2、使用記憶體記號(memory trials),設定乙個全域性快取區,給每乙個追蹤點加1個記號,並記錄在快取區。
3、使用log,記錄執行緒的執**況。不過輸出的log多半與執行緒的實際執**況不一致,可以做為參考。
4、intel cpu 可以使用除錯暫存器。
5、其它還有加一些dos視窗列印,加assert、trace到debug視窗等。
需注意的地方:
debug、memory trials、log這些都會對多執行緒程式的執行有很大影響,有時間成本。
多執行緒程式的除錯需要乙個穩定的執行環境。
每次只對乙個地方做測試。
要注意記下曾經的操作,以便還原回去,不能盲目的執行。
在最終解決了問題後,要知道問題是如何被解決的,要有乙個確切的結果,知道相關的**、出錯原因。
多執行緒除錯)
軟體除錯是我們軟體開發過程中的重要一課。在前面,我們也討論過程式除錯,比如說這裡。今天,我們還可以就軟體除錯多講一些內容。比如說條件斷點,資料斷點,多執行緒斷點等等。cpp view plain copy include intvalue 0 void test intmain 1 資料斷點 所謂資...
linux gdb 除錯多執行緒 單獨除錯執行緒
linux gdb 除錯多執行緒 單獨除錯執行緒 2011年01月26日 星期三 下午 06 10 一 多執行緒除錯 多執行緒除錯可能是問得最多的。其實,重要就是下面幾個命令 info thread 檢視當前程序的執行緒。thread 切換除錯的執行緒為指定id的執行緒。break file.c 1...
多執行緒程式設計 多執行緒gdb除錯
學習多執行緒程式設計怎麼能夠不會多執行緒 gdb 除錯呢?這一講主要學習多執行緒的 gdb 除錯。首先列出我們經常會使用到的指令 1 info threads 顯示當前可除錯的所有執行緒,每個執行緒會有乙個gdb為其分配的id,後面操作執行緒的時候會用到這個id。前面有 的是當前除錯的線 程。2 t...