GDB調試多線程


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。

set non-stop on/off:
當調式一個線程時,其他線程是否運行。
set pagination on/off:
在使用backtrace時,在分頁時是否停止。
set target-async on/ff:
同步和異步。同步,gdb在輸出提示符之前等待程序報告一些線程已經終止的信息。而異步的則是直接返回。
show scheduler-locking:
查看當前鎖定線程的模式


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM