Linux下GDB除錯多執行緒

2021-07-28 09:49:46 字數 485 閱讀 6979

1、gdb會每個執行緒分配乙個id,前面有*的表示當前正在除錯的執行緒。

(gdb) info threads

id target id frame

* 2 thread 0x7ffff77ff700 (lwp 2481) "thread" thread_func (args=0x0)

at thread.c:11

1 thread 0x7ffff7fe7700 (lwp 2478) "thread" main () at thread.c:24

2、切換到指定id的執行緒。

(gdb)thread 2
3、使用set scheduler-locking命令可以控制線程的執行,on時鎖定當前執行緒,而不執行其它執行緒。

(gdb)set scheduler-locking off|on

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...