沒有調試器的情況下編寫程序時最糟糕的狀況是什麼?編譯時跪著祈禱不要出錯?用血祭召喚惡魔幫你運行程序?或者在每一行代碼間添加printf("test")語句來定位錯誤點?如你所知,編寫程序時不使用調試器的話是不方便的。幸好,linux下調試還是很方便的。大多數人使用的IDE都集成了調試器,但 linux 最著名的調試器是命令行形式的C/C++調試器GDB。然而,與其他命令行工具一致,DGB需要一定的練習才能完全掌握。這裡,我會告訴你GDB的基本情況及使用方法。
GDB調試程序用法 http://www.linuxidc.com/Linux/2013-06/86044.htm
GDB+GDBserver無源碼調試Android 動態鏈接庫的技巧 http://www.linuxidc.com/Linux/2013-06/85936.htm
使用hello-gl2建立ndk-GDB環境(有源碼和無源碼調試環境) http://www.linuxidc.com/Linux/2013-06/85935.htm
在Ubuntu上用GDB調試printf源碼 http://www.linuxidc.com/Linux/2013-03/80346.htm
Linux下用GDB調試可加載模塊 http://www.linuxidc.com/Linux/2013-01/77969.htm
Ubuntu下使用GDB斷點Go程序 http://www.linuxidc.com/Linux/2012-06/62941.htm
大多數的發行版倉庫中都有GDB
Debian 或 Ubuntu
Arch Linux
Fedora,CentOS 或 RHEL:
如果在倉庫中找不到的話,可以從官網中下載。
當學習GDB時,最好有一份代碼,動手試驗。下列代碼是我編寫的簡單例子,它可以很好的體現GDB的特性。將它拷貝下來並且進行實驗——這是最好的方法。
首先最重要的,你需要使用編譯器的 “-g“選項來編譯程序,這樣可執行程序才能通過GDB來運行。通過下列語句開始調試:
使用”-tui“選項可以將代碼顯示在一個漂亮的交互式窗口內(所以被稱為“文本用戶界面 TUI”),在這個窗口內可以使用光標來操控,同時在下面的GDB shell中輸入命令。
現在我們可以在程序的任何地方設置斷點。你可以通過下列命令來為當前源文件的某一行設置斷點。
或者為一個特定的函數設置斷點:
甚至可以設置條件斷點
例如,在我們的示例代碼中,可以設置如下:
這樣,程序循環97次之後停留在“a++”語句上。這樣是非常方便的,避免了我們需要手動循環97次。
更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2014-11/109845p2.htm