Linux中國

使用Nemiver調試器來調試 C/C++ 程序

默認情況下,斷點通常位於主函數的第一行。這樣就可以空出時間讓你去認識調試器的基本功能:

  • 執行到下一行 (按鍵是F6)
  • 執行到函數內部即停止(F7)
  • 執行到函數外部即停止(Shift+F7)

不過我個人喜歡「Run to cursor(運行至游標所在行)」,該選項使你的程序準確的運行至你游標所在行,它的默認按鍵是F11。

斷點是很容易使用的。最快捷的方式是在一行代碼上按下F8來設置一個斷點。但是Nemiver在「Debug」菜單下也有一個更複雜的菜單,它允許你在一個特定的函數,某一行,二進位文件中的位置,或者類似異常、分支或者exec的事件上設置斷點。

你也可以通過追蹤來查看一個變數。在「Debug」中,你可以用一個表達式的名字來檢查它的值,然後也可以通過將其添加到列表中以方便訪問。這可能是最有用的一個功能,雖然我從未有興趣將滑鼠懸停在一個變數來獲取它的值。值得注意的是,雖然滑鼠懸停可以取到值,如果想要讓它更好地工作,Nemiver是可以看到結構並給出所有成員的變數的賦值。

談到方便地訪問信息,我也非常欣賞這個程序的布局。默認情況下,代碼在上半部分,功能區標籤在下半部分。這可以讓你訪問終端的輸出、上下文追蹤器、斷點列表、註冊器地址、內存映射和變數控制。但是請注意在「Edit」-「Preferences」-「Layout」下你可以選擇不同的布局,包括一個可以修改的動態布局。

自然,當你設置了全部斷點,觀察點和布局,您可以在「File」菜單下很方便地保存該會話,以便你下次打開時恢復。

Nemiver的高級用法

到目前為止,我們討論的都是Nemiver的基本特徵,例如,你馬上開始調試一個簡單的程序需要了解什麼。如果你有更高的需求,特別是對於一些更加複雜的程序,你應該會對接下來提到的這些特徵更感興趣。

調試一個正在運行的進程

Nemiver允許你駁接到一個正在運行的進程進行調試。在「File」菜單,你可以篩選出正在運行的進程,並駁接到某個進程。

通過TCP連接遠程調試一個程序

Nemiver支持遠程調試,你可以在一台遠程機器上設置一個輕量級調試伺服器,然後你在另外一台機器上啟動 nemiver 去調試運行在調試伺服器上的程序。如果出於某些原因,你不能在遠程機器上很好地駕馭 Nemiver或者GDB,那麼遠程調試對於你來說將非常有用。在「File」菜單下,指定二進位文件、共享庫位置、遠程地址和埠。

使用你的GDB二進位程序進行調試

如果你的Nemiver是自行編譯的,你可以在「Edit(編輯)」-「Preferences(首選項)」-「Debug(調試)」下給GDB指定一個新的位置。如果你想在Nemiver下使用定製版本的GDB,那麼這個選項對你來說是非常實用的。

跟隨一個子進程或者父進程

當你的程序分支時,Nemiver是可以設置為跟隨子進程或者父進程的。想激活這個功能,請到「Debugger」下面的「Preferences(首選項)」。

總而言之,Nemiver大概是我最喜歡的不在IDE裡面的調試程序。在我看來,它甚至可以擊敗GDB,它和命令行程序一樣深深吸引了我。所以,如果你從未使用過的話,我會強烈推薦你使用。我十分感謝它背後的開發團隊給了我這麼一個可靠、穩定的程序。

你對Nemiver有什麼見解?你是否也考慮它作為獨立的調試工具?或者仍然堅持使用IDE?讓我們在評論中探討吧。

via: http://xmodulo.com/debug-program-nemiver-debugger.html

作者:Adrien Brochard 譯者:disylee 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國