2013-10-10 31 views
0

我有一個問題,一個真正討厭的錯誤(在100k行代碼中),並找到代碼行中的內存在某些地址更改值(這不應該發生)。Visual Studio 2008調試;打破值寫入時

問題是我不知道發生了什麼。

任何想法如何創建斷點或某些內容地址更改時,在該行代碼(這是正在進行更改)上破壞程序?

Thanx。

回答

2

在調試下,創建一個數據斷點。一旦內存數據發生變化,您就可以使其中斷(但不能在讀取訪問時斷開)。

您必須運行代碼,然後輸入要觀看的內存地址和長度(以便在內存設置時斷開)。

+0

好吧,我做到了,我發現的罪魁禍首,唯一的事情是在調試反彙編一些DLL BIE中發生的事情,我有源無論如何,我可以扭轉該地址的代碼行嗎? – BlackCat

+0

你應該有一個調用堆棧。試着看看。除此之外,你沒有其他可能來自哪裏的指針。 – SinisterMJ

+0

我想我弄明白了我的代碼thnx :)這是一些流浪的memcpy。 – BlackCat

2

您可以設置一個數據斷點,當內存位置的值發生更改時會中斷執行。我認爲你可以設置四個這樣的數據斷點。在這裏你可以找到instructions