我在使用 Visual Studio 2005 时遇到了一个奇怪的问题:我有一个设置为运行宏并继续的数据断点(也就是说,我选择了一个宏并选中了继续执行。)
现在,当数据断点(实际上是跟踪点)中的值发生变化时,我不是静默运行宏,而是首先得到一个消息框,通知我断点已被击中,并且宏仅在我击中 OK 后运行。
我正在调试的代码对时间敏感,因此无法调试。有没有办法禁用弹出的消息框?
回应评论:宏本身可以是空的,或者它可以是 Microsoft 提供的任何示例宏 - 它没有任何区别。
我在使用 Visual Studio 2005 时遇到了一个奇怪的问题:我有一个设置为运行宏并继续的数据断点(也就是说,我选择了一个宏并选中了继续执行。)
现在,当数据断点(实际上是跟踪点)中的值发生变化时,我不是静默运行宏,而是首先得到一个消息框,通知我断点已被击中,并且宏仅在我击中 OK 后运行。
我正在调试的代码对时间敏感,因此无法调试。有没有办法禁用弹出的消息框?
回应评论:宏本身可以是空的,或者它可以是 Microsoft 提供的任何示例宏 - 它没有任何区别。
它也为我做这件事。根据您设置“继续执行”选项的方式,该行为似乎有些不同,所以我怀疑这种行为(尽管很痛苦)可能是设计使然。或者它可能是一个错误,但在任何一种情况下你都可能被卡住。
另一种方法可能是使用 windbg 或其他Windows 调试工具之一,它们也支持数据断点。它们需要一些时间来适应,并且不像 Visual Studio 调试器那样用户友好,但它们非常强大。“ba”命令创建一个数据断点,您可以对调试器进行编程以在断点被命中时执行特定命令。 这篇文章有一些关于这些调试器的很好的介绍性信息,最后的问答部分有一个例子,说明了当一个面包点被击中时如何执行一个动作。
我的机器上没有 vs.net 2005。
所以,我在这里推测。
执行路线是什么?
它是否试图评估财产?
读取属性时是否设置了条件断点?(即在读取属性时中断?)
尝试删除与当前执行行相关的其他断点并再次添加跟踪点。