我正在調試Visual Studio 2008中的一段代碼,同時運行程序引發一個緩衝區溢出運行,我想用數據寫入斷點測試變量,有人可以告訴我如何在變量上寫入數據寫入斷點如何在Visual Studio 2008中寫入數據寫入斷點
回答
這本來是更實際的,如果你給一個代碼段。我不得不讓我自己:
void foo() {
int ix = 0x42;
int jx;
long long* p = (long long*)&ix;
*p = 0x100000042LL;
}
的這種有意的堆棧損壞嘗試將打破調試器:
所以我在函數入口設置斷點,後設數據斷點變量 「九」 與調試+新建斷點+新數據斷點的地址:
然後按F5繼續運行。數據斷點觸發:
好的截圖!我會補充說,根據我的經驗,數據斷點會顯着減慢調試程序的速度。但是,這可能是真正可以接受的折衷,有利於發現錯誤。 – 2013-05-06 23:45:44
它不會減慢任何速度。它們由具有調試寄存器的處理器實現。你只能設置其中四個的原因。條件斷點會導致速度減慢。 – 2013-05-07 00:15:11
嗯,你肯定是對的。 – 2013-05-07 00:32:22
執行此操作的最佳方法是使用WinDbg。 Visual Studio在打破數據寫入或數據讀取方面不太好。您可以從http://msdn.microsoft.com/en-us/windows/hardware/gg463009.aspx免費獲得WinDbg您可以在線獲得WinDbg的大量幫助,包括如何使用它來破解數據點讀取,讀取/寫入或只是寫入。微軟提供了我列出的URL的鏈接,並且http://windbg.info有很多關於使用WinDbg的信息。
但是,如果您堅持使用Visual Studio 2008,則執行此操作的方法是在您的Visual Studio調試器下啓動該程序。在您感興趣的變量處於活動狀態的代碼中設置一個斷點。一旦調試器在您的斷點處斷開執行,您可以使用「新斷點」菜單在變量讀或寫上添加新的斷點。您可能需要選擇您感興趣的變量,然後使用上下文選擇來啓動「新斷點」。選擇「數據點訪問」,並選擇它是用於讀取還是寫入或讀取/寫入訪問。
欲瞭解更多詳情,請諮詢:http://msdn.microsoft.com/en-us/library/350dyxd0(v=VS.90).aspx
- 1. 如何在Visual Studio中獲取變量寫入的斷點?
- 2. visual studio 2008宏:寫入輸出窗格
- 3. 如何在Visual Studio中寫入輸出
- 4. 如何從Python編寫Visual Studio 2008?
- 5. 在編寫調試器時,無法在Javascript中達到中斷點 - Visual Studio 2008
- 6. 在Visual Studio 2010中將行寫入數據集的問題C++
- 7. Visual Studio 2008中斷點可見樣式
- 8. Visual Studio 2008 - 斷點不能命中
- 9. 如何在Visual Studio 2005/2008(ASP.NET,C#)中永久刪除斷點
- 10. Visual Studio 2008調試;打破值寫入時
- 11. 如何在plist中寫入數據?
- 12. 如何在.plist中寫入數據?
- 13. 如何在Visual Studios中將數據寫入文件?
- 14. 如何將VBPROJ導入visual studio express 2008
- 15. 不斷將數據寫入文件
- 16. 如何寫入SQL Server 2008中的外部審計數據庫?
- 17. 節點js-將數據寫入可寫入流
- 18. 在mongodb中寫入數據
- 19. 在列中寫入數據
- 20. 在hbase中寫入數據
- 21. 在Android中寫入數據
- 22. 寫入數據
- 23. 寫入數據
- 24. 寫入Visual Studio的輸出窗口?
- 25. Visual Studio - Javascript - 寫入輸出窗口
- 26. 讀取/寫入Excel文件Visual Studio 2017
- 27. Visual Studio 2010 Express。寫入輸出窗口
- 28. 斷點在Visual Studio
- 29. Visual Basic - 將數據表寫入Excel
- 30. 如何在Visual Studio 2008中查看數據庫中的數據
讀/寫斷點通常爲硬件斷點實現,並且同樣地,需要在編譯時是已知的地址。這是 - 至少據我所知 - 不可能用自動變量。 – 2013-05-06 20:49:14
我們在談論自動變量嗎?他可以首先使用常規斷點來確定地址,然後放置數據斷點。見Hans Passant的回答。 – 2013-05-06 23:48:09
自Visual Studio 2005以來,您還可以使用/ GS編譯器開關,該開關提供帶金絲雀字的緩衝區溢出保護:[link](http://msdn.microsoft.com/en-us/library/8dbf701c%28v=VS。 80%29.aspx)。如果使用該功能,緩衝區溢出將最終導致異常,您可以中斷該異常。 – 2013-05-06 23:52:01