1. 程式人生 > >使用gdb檢視exit和_exit呼叫

使用gdb檢視exit和_exit呼叫

通篇假設未曾使用過gdb,一般的發行版都會攜帶這個工具,要是沒有,只能自己找找,如何安裝了。 本文並未詳細說明exit(_exit)裡邊詳細過程,只是表述如何進入。
測試程式碼如下: #include <stdio.h> #include <stdlib.h> void func() {      printf("atexit "); } int main(int argc, char* argv[]) {      atexit(func);      printf("stdio ");      printf("exit ");      exit(0);
} 將其輸入test.cc當中 編譯  >> g++ -g -o test test.cc 啟動gdb除錯 >> gdb test 顯示下程式碼輸入list或者首字母l >> l 顯示如圖:
在第19行處打上斷點,輸入break或者b >> break 19 執行 >> run 執行之後,執行到斷點處暫停,等待輸入新的命令(如果不是顯示如圖,可以檢視本文最後部分)
有兩個命令,一個是next,一個是step。next會跳到下一步,step會進入到這個函式中(相當於VS上的F10和F11) >> s
輸入s手就可以跟蹤了,接下來可以按照需求選擇next或者step。 有一個便利的地方是,當輸入一個命令後,直接按回車鍵,預設輸入上一個命令。 退出除錯 >> quit 如果是第一次除錯,往往都會缺一些環境:
解決方案: 切換成root使用者,將use後的部分複製,即 debuginfo-install ... 然後在終端上貼上執行,就如同yum install。 如果準備詳細學習gdb,可以參考下邊的部落格,前面幾章用於入門還是不錯的,後面可以慢慢看,慢慢提高。