0
我在程序中遇到了內存損壞問題。我發現有一個班級指針寫到一個地方。我想跟蹤這類對象的所有賦值,逐個檢查它們。如何跟蹤C++中特定類對象的所有賦值?
我的代碼中可能有50萬行。我無法手動執行此操作。有沒有任何工具或編譯選項可以幫助我?
我在程序中遇到了內存損壞問題。我發現有一個班級指針寫到一個地方。我想跟蹤這類對象的所有賦值,逐個檢查它們。如何跟蹤C++中特定類對象的所有賦值?
我的代碼中可能有50萬行。我無法手動執行此操作。有沒有任何工具或編譯選項可以幫助我?
我不確定你使用的是哪個平臺。但是大多數調試器都有一個觀察點的概念,您可以在其中觀察特定的變量。
對於GDB你只需要輸入watch foo
和運行代碼
查看更多在這裏:
http://sourceware.org/gdb/onlinedocs/gdb/Set-Watchpoints.html
或者,只是用valgrind
找到你的內存損壞,這是非常擅長。
看過http://valgrind.org? –
「類指針寫到一個地方」沒有多大幫助。但是「追蹤這類對象的所有賦值」部分可以通過重載這個類的operator =和copy-constructor來完成? – GadaaDhaariAvi