[英]How to set a breakpoint in a specific method of a specific object?
我的C ++項目中存在一個令人討厭的錯誤。 有一堂課
class SomeClass {
...
std::string *someString;
...
}
這是一個構造函數
SomeClass(...) {
...
someString = new std::string("");
...
}
事實是,此后,我僅使用該特定字符串進行操作,而沒有修改Poiner值。 我一直為該字符串分配不同的字符串,例如
*someString = "whatever";
someString->assign("whatever");
*someString += 'a';
應用程序是多線程的,確實有一個令人討厭的故障。 在某些時候,應用程序崩潰。 調試器顯示變量someString具有BAD POINTER。 我不知道這怎么可能
delete someString;
永遠不會被呼喚。
我查看了該字符串指針的所有引用,這是我可以告訴你的:
因此,我需要找到一種方法來檢查何時在特定對象上調用了析構函數。 實際上是對象數組。
因此,是否有一種方法可以在一組特定對象上對析構函數設置斷點(或其他任何方法)(我正在Visual Studio 2010 Proffessional上工作)?
如果您是多線程的,請考慮為您的字符串成員實現一種鎖定機制...(如果尚未這樣做)。 一個線程極有可能嘗試寫入正在另一個線程中重新分配的指針……或類似的東西。 多一點的代碼將有助於我們在更深入的上下文中理解問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.