簡體   English   中英

我需要知道匯編來調試用C編寫的程序嗎?

[英]Do I need to know assembly to debug programs written in C?

我正在學習C語言“C語言程序設計”,第2版,並且每個練習也都在學習。

我是否需要知道匯編才能調試我編寫的C程序作為書籍練習的解決方案?

另外,您推薦哪種調試器?

不需要知道要在C中編程的匯編,包括調試。 但是,如果你知道裝配,那么C開始變得很有意義; 有一些組裝概念(最好是幾個不同的體系結構上的一些概念,比如x86和ARM)真的很有幫助,而且不僅僅是用於調試。

這不是必需的,但有時非常有幫助。 如果您正在使用MSVC ++,只需使用IDE中的那個,它也可以顯示反匯編。

不,你不需要知道裝配才能學習C.

就調試器而言,也許最簡單的選擇是使用您正在使用的IDE中內置的調試器。 在Windows上, Microsoft Visual Studio很受歡迎(有免費版本 )。 Eclipse是另一種流行的選擇,可以在許多平台上使用。

還有一些命令行調試器,比如gdb ,但它們比基於GUI的調試器更難開始。

為了逐步調試,知道匯編可能會有所幫助,但不是必需的。 如果確實有必要,它還取決於調試器。

但是還有其他方法來調試程序,例如將printf()調用放在戰略位置。

不,asm不是必需的,但有幫助的,就像其他人所說的那樣,使用調試器......其他人沒有說過,是你甚至可以使用GDB,但一定要禁用編譯器優化或調試可能很難。

使用GCC -g2-g3標志進行編譯時,可以使用GDB調試程序。 在這里你可以找到一個簡短的教程如何使用GDB http://cs.baylor.edu/~donahoo/tools/gdb/tutorial.html ,在這里你可以找到一個更廣泛的教程http://www.delorie.com/ GNU /文檔/ GDB / gdb_toc.html

如果要調試自己的程序,則無需學習匯編。 編譯器可以將源代碼信息嵌入到可執行文件(帶GCC的-g標志)或側文件(帶有MSVC的/Z標志族)中。

開始使用調試器並不難(即使您使用命令行),互聯網上到處都有大量資源。 這項投資將為您帶來最大回報。

然而,掌握匯編語言有時可能會有用。 當您想要檢查某些優化的執行方式時,有時(很少)需要查看編譯器生成的程序集。 但除非你有一份非常具體的工作,否則你不應該擔心這個問題。

不,你沒有。 Microsoft Visual Studio有一個很好的調試器。 其他選項包括Code :: BlocksEclipse

暫無
暫無

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

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