多線程調試的基本命令(均在gdb命令行使用):
info threads ———— 顯示當前可調試的所有線程。每一個線程都有自己的線程ID,顯示結果中前面有*的表示當前調試的線程。
eg:
(gdb)info threads
ID Target ID
3 Thread 0x——————(LWP 1235)
2 Thread 0x——————(LWP 1234)
*1 Thread 0x——————(LWP 1233) //當前活動的線程
最前面的數字1、2、3表示線程ID
thread ID ———— 切換當前活動線程到ID指定的線程
thread apply ID1 ID2 command ———— 讓一個或多個線程執行gdb命令command
thread apply all command ———— 讓所有被調試線程執行gdb命令command
set schedular-locking off|on|step ———— off:調試線程時,其他線程也在運行;on:只有當前被調試線程執行;step:step在單步執行的時候,除了next過一個函數外,只有當前線程會執行。
GDB調試程序用法 http://www.linuxidc.com/Linux/2013-06/86044.htm
GDB+GDBserver無源碼調試Android 動態鏈接庫的技巧 http://www.linuxidc.com/Linux/2013-06/85936.htm
使用hello-gl2建立ndk-GDB環境(有源碼和無源碼調試環境) http://www.linuxidc.com/Linux/2013-06/85935.htm
在Ubuntu上用GDB調試printf源碼 http://www.linuxidc.com/Linux/2013-03/80346.htm
Linux下用GDB調試可加載模塊 http://www.linuxidc.com/Linux/2013-01/77969.htm
Ubuntu下使用GDB斷點Go程序 http://www.linuxidc.com/Linux/2012-06/62941.htm