簡體   English   中英

在Linux上為Windows Developer進行調試

[英]Debugging on Linux for Windows Developer

基本上,我已經在Windows機器上完成了基本(新手級別)軟件開發,但是我一直都有MS Visual Studio來幫助我逐步完成調試過程。

但是,現在看來,我將在Linux上運行,因此,為了准備好進行跳躍,我想確保已排列一個工具來幫助我逐步進行代碼和調試。

不幸的是,當我向人們口頭詢問他們如何在Linux上進行調試時,我通常會得到以下回答:“哦,我只寫了一些打印語句。” 我的天啊! 你沒辦法說,但是是的,這就是他們的答案。

由於它在Linux上,並且將在CentOS 32位OS上使用C ++代碼,因此我希望這里是首選的OpenSource解決方案。 因此,我想我要為CentOS Linux上的C ++代碼尋求首選的OpenSource IDE。

感謝您的任何見解和建議。

幾年前,我從VS轉到了emacs / make類型的環境,但我從未回過頭。

這個想法是使用makefile來處理IDE的項目管理,而我使用emacs + gdb進行編輯和調試。 這需要一段時間才能習慣emacs,但是如果堅持下去,值得付出努力。 啟動emacs后,請按“ Ctrl + H”,然后按“ t”,這將帶您進入教程頁面。

掌握了基礎知識之后,您可以使用與任何IDE /調試器接口類似的方式來調試程序。 我必須承認,即使經過了所有這些時間,我仍然使用初次移至emacs時設置的一組VS鍵映射!

(global-set-key [f7] 'compile)          ;; Run the compile command
(global-set-key [f4] 'next-error)       ;; The next compile error
(global-set-key [S-f4] 'previous-error) ;; The previous compile error
(global-set-key [f5] 'gdb)              ;; Start the debugger

以下將“ VS”鍵映射設置為您可能使用的不同GDB命令:

(add-hook 'gud-mode-hook
  '(lambda ()
     (define-key (current-local-map)
       [f10]
       'gud-next)
     (define-key (current-local-map)
       [f11]
       'gud-step)
     (define-key (current-local-map)
       [\S-f11]
       'gud-finish)
     (define-key (current-local-map)
       [f5]
       'gud-cont)
))

通過上面的鍵盤映射,我按了“ f5”鍵,提示我運行gdb(向該命令添加了我想調試的二進制文件)。 加載gdb后,請按“ f5”繼續,“ f10”進入,“ f11”進入,“ shirt + f11”退出。

最后,每次啟動“ gdb”時,它將在您的主目錄中讀取一個名為“ .gdbinit”的文件。 一個不同的StackOverflow問題有這個答案 ,這引起了我對stl視圖的關注。 stl-views是gdb的一組輔助函數,可向您顯示不同類型的STL容器的內容。 鏈接頂部提供了如何使用它的說明。

我建議使用Eclipse

Eclipse是一種成熟的IDE,具有大量可用的支持。

如果您想嘗試其他方法,也可以使用Code :: Blocks

  • 日食
  • NetBeans
  • 開發

通常,對於與VS類似(?)的IDE,請使用Eclipse

請參閱將Microsoft VS項目移至Eclipse C / C ++開發工具包 -有關將Microsoft Visual Studio C / C ++(MSVC)項目移至Eclipse的簡要分步過程。 它比較並對比了MSVC和Eclipse CDT的好處。

總有GDB 用於OSX的XCode在內部使用GDB進行調試。

Valgrind ,它是您的朋友,並且可能使您免於遭受GDB的痛苦。

Anjuta是GNOME的非常出色的IDE。 為了進行調試,它在內部使用GDB。

如果您只想要一個好的調試器,請簽出DDD

在Linux上進行調試時,我將gdbcscope結合使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM