Linux下多线程的调试
多线程调试的基本命令(均在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过一个函数外,只有当前线程会执行。