GDB多執行緒除錯

2022-09-07 19:12:09 字數 807 閱讀 4237

對於多執行緒程式,你可以定義你的斷點是否在所有的執行緒上,或是在某個特定的執行緒。gdb很容易幫你完成這一工作。

break thread

break thread if ...

linespec指定了斷點設定在的源程式的行號。threadno指定了執行緒的id,注意,這個id是gdb分配的,你可以通過「info threads」命令來檢視正在執行程式中的執行緒資訊。如果你不指定thread 則表示你的斷點設在所有執行緒上面。你還可以為某執行緒指定斷點條件。如:

(gdb) break frik.c:13 thread 28 if bartab > lim

當你的程式被gdb停住時,所有的執行執行緒都會被停住。這方便你你檢視執行程式的總體情況。而在你恢復程式執行時,所有的執行緒也會被恢復執行。那怕是主程序在被單步除錯時。

對於多執行緒程式,你可以定義你的斷點是否在所有的執行緒上,或是在某個特定的執行緒。gdb很容易幫你完成這一工作。

break thread

break thread if ...

linespec指定了斷點設定在的源程式的行號。threadno指定了執行緒的id,注意,這個id是gdb分配的,你可以通過「info threads」命令來檢視正在執行程式中的執行緒資訊。如果你不指定thread 則表示你的斷點設在所有執行緒上面。你還可以為某執行緒指定斷點條件。如:

(gdb) break frik.c:13 thread 28 if bartab > lim

當你的程式被gdb停住時,所有的執行執行緒都會被停住。這方便你你檢視執行程式的總體情況。而在你恢復程式執行時,所有的執行緒也會被恢復執行。那怕是主程序在被單步除錯時。

gdb多執行緒除錯

先介紹一下gdb多執行緒除錯的基本命令。info threads顯示當前可除錯的所有執行緒,每個執行緒會有乙個gdb為其分配的id,後面操作執行緒的時候會用到這個id。前面有 的是當前除錯的執行緒。thread id切換當前除錯的執行緒為指定id的執行緒。break thread test.c 12...

gdb 除錯多執行緒

設定core環境 uname a 檢視機器引數 ulimit a 檢視預設引數 ulimit c 1024 設定core檔案大小為1024 ulimit c unlimit 設定core檔案大小為無限 多執行緒如果dump,多為段錯誤,一般都涉及記憶體非法讀寫。可以這樣處理,使用下面的命令開啟系統開...

gdb 多執行緒除錯

推薦閱讀 先介紹一下gdb多執行緒除錯的基本命令。info threads顯示當前可除錯的所有執行緒,每個執行緒會有乙個gdb為其分配的id,後面操作執行緒的時候會用到這個id。前面有 的是當前除錯的執行緒。thread id切換當前除錯的執行緒為指定id的執行緒。break thread test...