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
為某個線程設置斷點