我已經編程了大約5個月。我從C++開始,然後是C,最後是Java。在這段時間裏,我從來沒有在編譯器上使用調試功能,也不知道它的功能。在課堂上,迄今爲止我還沒有任何關於調試器的知識(Altho類幾乎不用C開始,我自己學習了C++和Java)。什麼是調試,它有什麼作用,並且你經常使用它?調試有什麼用途?我一直在調試,但我不明白。任何人都可以正確解釋調試功能嗎?從我目前瞭解的情況來看,這是一個可以幫助您查找錯誤的功能,但我不太明白它的工作原理。調試有幫助嗎?
調試有幫助嗎?
回答
調試本身就是發現和消除錯誤的過程,沒有別的也沒有。所以除非你是一個從不犯錯誤的完美程序員,否則你已經完成了。
A 調試器另一方面,它是一個協助調試的工具。您仍然可以在沒有調試器的情況下進行調試,但是使用調試器可以爲您提供更多選擇以及解決方法。
沒有你提的具體情況,你在說哪個調試有關(Visual Studio的一個,或者GDB,或......),我們真的不能告訴你如何使用它,但是,概括地說:
調試器將允許您一次執行一條指令的代碼,或一次執行一條指令。它會讓你運行你的代碼,直到你感興趣的地方,然後停下來。在代碼停止的情況下,您可以檢查變量的值以確保事情順利進行,並且在某些情況下甚至可以修改運行中的事情以測試各種情況。
一些調試不使用調試器技術:
- 打印插入,在那裏你垃圾與打印命令代碼,可以讓你追蹤你的代碼的狀態在運行時,
- 代碼閱讀,你在哪裏閱讀代碼,並試圖找到你的意圖與實際寫的不同的地方
- 杯子對話,你試圖向你的朋友(或一個杯子,或企鵝娃娃)解釋你的代碼在你的桌子上),並在這個過程中看到你的邏輯出錯
- 二進制縮短搜索,在那裏你在一個時間刪除您的代碼塊,看看錯誤仍然存在
等等。
謝謝。這幾乎總結了我。我之前已經調試過,但沒有該功能本身。 – Bugster 2011-12-29 15:43:33
「杯子對話」我曾經有過這種叫做「專家白癡」技巧的變體。朋友會說,「這在X打擊,我不知道爲什麼。」我會說,「好吧,從頭開始。」我會坐下來強迫他們解釋一切,好像我是一個完全白癡。很多時候,他們會處於中間狀態,停下來,臉紅,並說:「沒關係。」如果他們說:「哦,它永遠不會發生*。」我進入Pit Bull模式並強迫他們捍衛每一個逗號和分號,因爲這個「手搖」幾乎肯定意味着他們沒有真正看過它。 – 2011-12-31 23:52:51
調試允許您在代碼執行的每個步驟檢查變量的值。這是找到愚蠢錯誤的好方法(等等)。例如,你可能不抓住這個差一錯誤:
for (int i = 0; i <= 10; i++)
{
MethodThatShouldExecuteTenTimes(i);
}
如果通過與調試代碼步驟,你會看到,該方法被調用11次。
如果你編寫的程序總是第一次工作,你將永遠不需要找到錯誤。
如果程序編譯但不起作用,您如何解決出了什麼問題?
添加大量的打印語句的工作,但能夠進入功能,逐步通過他們,並檢查內存存儲真的很有幫助。
人們可以說調試就像暴力 - 無聊的最後一個避難所!
但是有時候,我們沒有足夠的能力來避免這個bug,調試器使得生活SOOOOOO更好。
調試是發現沒有做你想做它的代碼的過程。爲了高效完成工作,這是一項非常必要的技能。它可以包含很多東西。包括但不限於:由程序
- 閱讀日誌文件(例如不網頁顯示和正確行事)
- 查看異常的堆棧跟蹤
- 使用調試器逐行掃描您的代碼,以便您可以在執行期間的特定點處看到變量的值。
調試器不僅可以用於定位程序中的錯誤。它可以幫助您理解現有代碼的運作方式。您可以在代碼中設置斷點:一個標記,告訴調試器在該行停止執行。然後從這一點開始,您可以逐行逐句瀏覽源代碼。
爲了更好地使用調試器,我建議您在代碼中設置一個斷點並逐步完成。然後你會看到我和其他人說的話。您使用的任何開發環境應該有關於如何使用包含的調試器的說明。
- 1. django調試幫助
- 2. MIPS調試幫助
- 3. 幫助調試window.event.screenX
- 4. NSNotificationCenter有幫助嗎?
- 5. 請幫助調試,並沒有錯誤
- 6. Eclipse ADT調試器沒有幫助
- 7. Android ANR調試幫助
- 8. 幫助調試php代碼
- 9. 需要幫助調試JQuery
- 10. 幫助調試PL/SQL包?
- 11. LogCat輸出調試幫助
- 12. CoreData幫助---如何調試?
- 13. CS5.5 Flash Professional調試幫助?
- 14. TimeZone調試需要幫助
- 15. 幫助與SQL/LINQ調試
- 16. 調試幫助:C++錯誤
- 17. ObjC內存調試幫助
- 18. 幫助理解Solr調試
- 19. 幫助調試Qt代碼
- 20. android幫助用Toast調試
- 21. line [:missing`]'請調試幫助
- 22. 幫助調試ajax問題
- 23. Oracle SQL Developer - 幫助調試
- 24. OOP真的有幫助嗎?
- 25. tar有幫助壓縮嗎?
- 26. 反射有幫助嗎?
- 27. Python sys.exit()有幫助嗎?
- 28. 試圖讓JSONObect tokener幫助嗎?
- 29. 我可以幫助我調試tf.PaddingFIFOQueue錯誤嗎?
- 30. 我可以幫助調試此代碼嗎?
您可以按照您的代碼執行一步一步。這對於查找和排除錯誤很有用。 – Victor 2011-12-29 15:17:11