最近遇到乙個問題,乙個程序裡啟用了多執行緒,然後乙個執行緒掛掉了,產生了coredump檔案,但是gdb無法跟蹤到是哪乙個執行緒,沒辦法只能重新跑一邊,gdb當前程序,加入斷點,看運**況,步驟如下:
1、top 檢視正在執行的程式;
2、啟動gdb,attach 需要除錯的程序pid;(或者知道程序的名字直接gdb attach pidof raid_server);
3、加入斷點,continue gdb;
4、然後執行到出問題的執行緒出了segment fault錯誤;
5、bt檢視堆疊資訊,定位**錯誤原因;
Linux gdb除錯多執行緒
我們這裡仍舊將gdb的基本操作在這裡羅列一下 list l 行號 顯示源 一次顯示10行 list l 函式名 列出某個函式的源 r或run 執行程式 s或step 進入函式呼叫 breaktrace bt 檢視函式呼叫棧 info i locals 檢視當前棧幀區域性變數的值 info break...
linux gdb 除錯多執行緒
1 用 kill 命令產生 core dump檔案 kill 11 pid 用訊號11殺掉它,會讓程序產生乙個 segmentation fault,從而產生乙個 core dump,得到乙個 core 檔案,裡面包含了死鎖的時候,程序的記憶體映象。其中訊號11表示 sigse sigse 是當乙個...
linux gdb 除錯多執行緒 單獨除錯執行緒
linux gdb 除錯多執行緒 單獨除錯執行緒 2011年01月26日 星期三 下午 06 10 一 多執行緒除錯 多執行緒除錯可能是問得最多的。其實,重要就是下面幾個命令 info thread 檢視當前程序的執行緒。thread 切換除錯的執行緒為指定id的執行緒。break file.c 1...