1. 程式人生 > >gdb簡單指令以及core檔案除錯——Linux除錯基本技能

gdb簡單指令以及core檔案除錯——Linux除錯基本技能

core檔案除錯步驟——直接定位段錯誤堆疊

1、ulimit -c unlimited設定core檔案無限制

2、echo “/root/core” > /proc/sys/kernel/core_pattern制定core檔案生成的路徑,注意路徑後要加上core

3、在本地執行自己的二進位制檔案,使之產生段錯誤,會在之前設定的路徑下生成一個core.93919(後面數字隨機)檔案

4、gdb ./二進位制檔案  core.93919會進入除錯階段,之後使用bt,就可以輸出段錯誤的地方了,指示的很明確

第4步或者使用gdb --core=core.93919進入gdb除錯,再輸入file 可執行檔案告訴gdb哪個可執行檔案,再bt也能顯示出段錯誤的地方

gdb除錯的具體方法:

    l 1    顯示第一行以下的n行,(如果是上面的情況直接輸入l就好了),之後如果一直回車的話會一直有源程式顯示出來。之後設定斷點,break 33在33行設定斷點,再輸入r,讓程式執行起來,他會執行到斷點結束,之後你輸入n,一步一步執行,p命令能打印出你的變數。

gdb常規命令:

    b 斷點

    L 顯示  L 20  顯示20行

    p 列印

    n 單步

    r  執行

    step 進函式

    until 結束本迴圈

    info locals 所有區域性變數的值

    info args 當前函式引數

    info frame 當前棧資訊

    info thread 顯示執行緒

    thread 2 切換到2工作執行緒

    bt 顯示堆疊

    frame 1 顯示某一堆疊

gdb加引數

    例如一個程式名為prog 引數為 -a b -c d

    執行gdb prog進入除錯介面之後輸入引數

    set args -a b -c d回車就好了