2012-08-27 33 views
8

可能重複:
Bidirectional (or reverse) debugging是否有一個調試器讓我通過代碼後退一步?

我擡頭無所不知調試器(http://www.lambdacs.com/debugger/ODBDescription.html),但它是特定於Java。對於本地應用程序,即C/C++,是否有任何調試器具有相同的功能?

我還沒有明確表態。我想打破假數據值/代碼路徑,然後「回滾」,向後調試,直到我找到代碼/邏輯/設計中的錯誤。

我知道我可以逐步調試「向前」,我想要做同樣的事情,因此調試器需要在每一步中保存它的上下文。

+1

我認爲gdb可以做到這一點。只需在編譯標誌中添加-g – Wug

+0

許多(所有?)基於IDE的開發環境都有一個內置調試器,可以通過源代碼行顯示堆棧幀(本地,函數返回)。然後有gdb的命令行的東西.. –

+0

這是任何調試器的主要功能之一。你看過哪些調試器?維基百科上有一個你可以諮詢的清單。 –

回答

2

我想你應該使用GDB for C/C++。 您有一些堆棧跟蹤選項,您可以在程序中設置斷點並逐步運行它。

請查閱http://www.cs.cmu.edu/~gilpin/tutorial/#3.5或在網上查找其他教程。

希望它有幫助。

+2

@templatetypedef這個答案在退步之前是作爲一個需求(嘆氣)編輯的,儘管實際上GDB *支持這個(需要GDB> = 7):http://sourceware.org/gdb/wiki/ReverseDebug –

-2

對於linux GDB是建議的,而對於Windows windbg更好。

+1

我花了很多時間讓WinDbg與我當前的項目一起工作,只是發現它不支持反向調試。 – David

6

GDB 7.0版(由於2009年9月)將首次公開發行GDB支持反向調試(讓程序 正在調試步驟,並且繼續在能力 反向)

附錄:

Visual Studio 2010和更高版本支持 「歷史調試」( 「智能跟蹤」):

+0

Visual Studio只能爲使用C#或Visual Basic編寫的.NET應用程序執行此操作。正如文章所說,「IntelliTrace不支持調試C++」 – RyanCu

0

gdb有命令up ndown n選擇(n)幀updown

也許這可以幫助。

相關問題