C语言gdb调试
文章目錄
- 一、gdb的安裝
- 二、調試前的準備
- 三、基本調試命令
- 四、課后作業
- 九、版權聲明
程序員寫在編寫程序的時候不可能是一帆風順的,gcc編譯器可以發現程序代碼的語法錯誤,但不能發現程序的業務邏輯錯誤,調試程序是軟件開發的內容之一。調試程序的方法有很多種,例如可以用printf語句跟蹤程序的運行步驟和顯示變量的值,本章節介紹一個功能強大的調試工具gdb。
一、gdb的安裝
CentOS系統中,用root用戶登錄服務器,執行以下命令安裝或升級。
yum -y install gdb注意,如果您的服務器沒有安裝gdb,以上命令就會安裝最新版本的gdb,如果已經安裝了gdb,就會更新到最新版本的gdb,所以,以上命令不管執行多少次都沒有問題。
安裝gdb,前提條件是服務器必須接入互聯網。
二、調試前的準備
用gcc編譯源程序的時候,編譯后的可執行文件不會包含源程序代碼,如果您打算編譯后的程序可以被調試,編譯的時候要加-g的參數,例如:
gcc -g -o book113 book113.c在命令提示符下輸入gdb book113就可以調試book113程序了。
gdb book113三、基本調試命令
| set args | 設置主程序的參數。 例如:./book119 /oracle/c/book1.c /tmp/book1.c 設置參數的方法是: gdb book119 (gdb) set args /oracle/c/book1.c /tmp/book1.c | |
| break | b | 設置斷點,b 20 表示在第20行設置斷點,可以設置多個斷點。 |
| run | r | 開始運行程序, 程序運行到斷點的位置會停下來,如果沒有遇到斷點,程序一直運行下去。 |
| next | n | 執行當前行語句,如果該語句為函數調用,不會進入函數內部執行。 |
| step | s | 執行當前行語句,如果該語句為函數調用,則進入函數執行其中的第一條語句。 注意了,如果函數是庫函數或第三方提供的函數,用s也是進不去的,因為沒有源代碼,如果是您自定義的函數,只要有源碼就可以進去。 |
| p | 顯示變量值,例如:p name表示顯示變量name的值。 | |
| continue | c | 繼續程序的運行,直到遇到下一個斷點。 |
| set varname=v | 設置變量的值,假設程序有兩個變量:int ii; char name[21]; set ii=10 把ii的值設置為10; set name=“西施” 把name的值設置為"西施",注意,不是strcpy。 | |
| quit | q | 退出gdb環境。 |
注意,在gdb環境中,可以用上下光標鍵選擇執行過的gdb命令。
四、課后作業
gdb調試是程序員必須掌握的方法,多嘗試一下,搞清楚每個命令的用法。
九、版權聲明
C語言技術網原創文章,轉載請說明文章的來源、作者和原文的鏈接。
來源:C語言技術網(www.freecplus.net)
作者:碼農有道
如果這篇文章對您有幫助,請點贊支持,或在您的博客中轉發我的文章,謝謝!!!
如果文章有錯別字,或者內容有錯誤,或其他的建議和意見,請您留言指正,非常感謝!!!
總結
- 上一篇: vsprintf用法解析
- 下一篇: C语言makefile文件