1、set scheduler-locking off/on/step
调试时除了当前线程在运行,要想规定其他线程的运行情况用这个命令,有三个选择:
-
set scheduler-locking off
:不锁定任何线程,所有线程都可以继续执行,这是默认选项。 -
set scheduler-locking on
:只有当前线程可以执行,其他线程暂停运行。 -
set scheduler-locking step
: 当单步执行某一线程时,其它线程不会执行,同时保证在调试过程中当前线程不会发生改变。但如果该模式下执行 continue、until、finish 命令,则其它线程也会执行,并且如果某一线程执行过程遇到断点,则 GDB 调试器会将该线程作为当前线程。
NOTE:只有线程创建之后这个命令的暂停效果才有效,比如set scheduler-locking on
开启之后,但pthread_create
语句还没执行,这时执行continue
后边创造的线程不会被暂停,必须等线程创造后再执行coneinue
。
2、info threads
显示当前有几个线程,前边有线程ID。
3、thread ID
切换线程,ID为info threads
前边显示的ID。
4、break xxx thread ID
为某个线程设置断点