2012-04-02 49 views
1

C或C++在調試一個核心轉儲,即,如果我們留下了一個核心轉儲文件,並嘗試使用該核心文件調試是有辦法,我們可以看到的最後幾行堆棧跟蹤只顯示函數調用。源線在調試核心轉儲

用於例如:在dbx中或GDB list命令調試運行過程中

list Display lines of a source file

會給代碼的一部分目前正在execution.in以同樣的方式我們可以選擇,而尋找到核心轉儲? 我正在研究solaris mdb

回答

0

如果使用-g選項編譯,您可以顯示源代碼行。在dbx中,可以使用use命令來設置dbx源目錄。

您可以使用list(l)命令來顯示源代碼行。

help命令來學習如何使用的dbx和gdb命令。

0

如果您在dbx中使用use命令正確設置了源路徑,或者使用-I選項啓動了它,那麼在讀取源代碼行時調試核心轉儲和正常進程幾乎沒有區別。

2

list命令在gdb應提供源代碼行號的細節和相應的源從核心文件列表,如果:

  • 可執行用例如-g在gcc和克啓用調試符號(++編譯)
  • 可執行的非剝離版本可用(即,一直沒有通過運行strip刪除調試信息)
  • 調試器能夠找到相關的源碼文件

調試器應該仍然能夠提供文件和行號,即使它是無法找到源文件的行號信息形成的調試符號的一部分。該信息應通過bt(backtrace)命令以及info symbol命令提供。即使是從剝離可執行文件生成的核心文件,只要你有機會獲得一個未剝離的版本,你可以加載在gdb,以及指定的核心文件

注意。

看看章13和gdb manual 15,以協助給予你的源文件GDB訪問。