1、鎖定執行緒及檢視鎖定的模式
(gdb) set scheduler-locking on
(gdb) show scheduler-locking
mode for locking scheduler during execution is
"on".
gdb多執行緒除錯乙個重要的設定引數就是scheduler-locking,取值on、off、step,預設為step。
show scheduler-locking //顯示當前scheduler-locking
set scheduler-locking [on/off/step] //設定scheduler-locking
注意:set scheduler-locking要處於執行緒執行環境下才能生效,也就是程式已經執行並且暫停在某個斷點處,否則會出現「target 『exec』 cannot support this command.」這樣的錯誤;而且經過測試,設定後的scheduler-locking值在整個程序內有效,不屬於某個執行緒。
下面根據實際測試結果對scheduler-locking的3種取值進行說明:
on:只有當前除錯執行緒執行,其他執行緒處於暫停狀態。
off:當前除錯執行緒外的其他執行緒一直在正常執行。
step:其他執行緒跟隨當前除錯執行緒執行,但具體怎麼協同執行,測試中無法體現。
如何使用gdb除錯程式
gdb 這就算是進入了gdb環境了。那麼我們使用命令run執行一下看看結果如何?starting program home zhxfan debugme program received signal sigsegv,segmentation fault.0x08048341 in index to...
如何利用gdb除錯程式?
程式的大體意思就是各乙個陣列賦值,然後輸出來 程式已經寫在了上面,下面我們就來看一下如何產生帶有除錯資訊的編譯檔案,這裡我們要使用gcc的 g引數,用於在編譯檔案中加入一些除錯資訊。發現加了 g和沒有加 g,生成的檔案大小不一樣的!你會發現,加上g後,產生的編譯檔案體積也會增加,所以在我們做軟體開發...
GDB除錯程式
gdb的三個功能 1 啟動被除錯的程式 2 設定斷點 3 設定斷點之後可以檢查程式的狀態 1.編譯生成可執行檔案 注意 g 除錯選項 gcc g tst.c o tst 2.啟動gdb gdb tst 3.在main函式處設定斷點 break main 4.執行程式 run5.利用 更加豐富的 gd...