info threads 查看當前進程的線程。
GDB會為每個線程分配一個ID, 后面操作線程的時候會用到這個ID.
前面有*的是當前調試的線程.
thread <ID> 切換調試的線程為指定ID的線程。
break file.c:100 thread all 在file.c文件第100行處為所有經過這里的線程設置斷點。
set scheduler-locking off|on|step
在使用step或者continue命令調試當前被調試線程的時候,其他線程也是同時執行的,
怎么只讓被調試程序執行呢?
通過這個命令就可以實現這個需求。
off 不鎖定任何線程,也就是所有線程都執行,這是默認值。
on 只有當前被調試程序會執行。
step 在單步的時候,除了next過一個函數的情況
(熟悉情況的人可能知道,這其實是一個設置斷點然后continue的行為)以外,
只有當前線程會執行。
thread apply ID1 ID2 command 讓一個或者多個線程執行GDB命令command
thread apply all command 讓所有被調試線程執行GDB命令command。
當調式一個線程時,其他線程是否運行。
在使用backtrace時,在分頁時是否停止。
同步和異步。同步,gdb在輸出提示符之前等待程序報告一些線程已經終止的信息。而異步的則是直接返回。
查看當前鎖定線程的模式