[英]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.