- gdb
平常使用gcc做為編譯器開發程式時,遇到segmentation fault多半是自行除錯,這裡可以使用gdb來縮短除錯的時間,以[C/C++] Stack Overflow這一篇的程式作為範例,編譯方式如下:
然後執行gdb並且附帶專案名稱:
接著你可以直接先執行run
你就會看到如下的錯誤:
In main()...
In func1()...
Program received signal SIGSEGV, Segmentation fault.
func2 () at stackoverflow.c:26
26 printf("In func2()...\n");
這時你可以使用break指令來設定break point
重新在執行一次run,就會在程式碼20行的位置停下來,你可以輸入下面的指令來看更多的gdb指令參數:
離開gdb
No comments:
Post a Comment