1、設定系統相關引數,否則不會產生coredump檔案。
echo "ulimit -c 1024" >> /etc/profile
設定完後,重新登入系統或者source /etc/profile,使生效。
2、編寫測試檔案,dump.cpp。
#include #include void crash()
int main()
3、編譯
g++ dump.cpp -o dump
4、生成coredump檔案
segmentation fault (core dumped)
5、除錯
gdb ./dump ./core,意思為./core檔案由./dump生成,並用gdb進行除錯。
編譯時如若未指定-g,輸出結果如下:
core was generated by `./dump'.
program terminated with signal sigsegv, segmentation fault.
#0 0x00000000004004e6 in crash() ()
(gdb)
core was generated by `./dump'.
program terminated with signal sigsegv, segmentation fault.
#0 0x00000000004004e6 in crash () at dump.cpp:6
6 str[0] = 'a';
(gdb)
linux下如何使用gdb除錯
gdb是linux下非常好用的乙個除錯工具,雖然它是命令列模式的除錯工具,但是它的功能強大到你無法想象,這裡簡單介紹下gdb下常用的命令。首先編譯生成可執行檔案 這裡的test.c是乙個簡單的求前n項和的程式 gcc g test.c o test g選項告訴gcc在編譯程式時加入除錯資訊 接下來可...
linux下如何用GDB除錯c 程式
gdb 是gnu開源組織發布的乙個強大的unix下的程式除錯工具。或許,各位比較喜歡那種圖形介面方式的,像vc bcb等ide的除錯,但如果你是在 unix平台下做軟體,你會發現gdb這個除錯工具有比vc bcb的圖形化偵錯程式更強大的功能。所謂 寸有所長,尺有所短 就是這個道理。一般來說,gdb主...
linux下如何用GDB除錯c 程式
gdb 是gnu開源組織發布的乙個強大的unix下的程式除錯工具。或許,各位比較喜歡那種圖形介面方式的,像vc bcb等ide的除錯,但如果你是在 unix平台下做軟體,你會發現gdb這個除錯工具有比vc bcb的圖形化偵錯程式更強大的功能。所謂 寸有所長,尺有所短 就是這個道理。一般來說,gdb主...