Linux下gdb線程的調試

來源:互聯網
上載者:User

標籤:編號   .com   指定   main   xxx   調試   img   執行   font   

多線程的調試命令 

1、info threads: 
這條命令顯示的是當前可調試的所有線程,GDB會給每一個線程都分配一個ID。前面有*的線程是當前正在調試的線程。 
2、thread ID: 
切換到當前調試的線程為指定為ID的線程。 
3、thread apply all command: 
讓所有被調試的線程都執行command命令 
4、thread apply ID1 ID2 … command: 
這條命令是讓線程編號是ID1,ID2…等等的線程都執行command命令 
5、set scheduler-locking off|on|step: 
在使用step或continue命令調試當前被調試線程的時候,其他線程也是同時執行的,如果我們只想要被調試的線程執行,而其他線程停止等待,那就要鎖定要調試的線程,只讓它運行。 
off:不鎖定任何線程,所有線程都執行。 
on:只有當前被調試的線程會執行。 
step:阻止其他線程在當前線程單步調試的時候搶佔當前線程。只有當next、continue、util以及finish的時候,其他線程才會獲得重新啟動並執行。 
6、show scheduler-locking: 
這條命令是為了查看當前鎖定線程的模式。 

7.i threads

實現線程間切換

8.編譯的時候需要注意的是,別忘了加動態連結程式庫和-g。 

gcc -g *.c -o xxx -lxxx

我的:gcc -g rwlock.c main.c -o a -lpthread

 

一個小提示:

在輸入gdb xx時,進入gdb命令,這時會輸出一些資訊。如上所示,這些資訊大多都是關於gdb的一些資訊,可以不讓他輸出,

如:gdb -q xx

這裡面a是我產生的調試資訊的檔案名稱。

Linux下gdb線程的調試

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.