我经常发现我知道正在执行的代码行上的断点没有正确破坏。
当我执行“跨越”或“进入”等时,它通常也会“逃跑”。
详情。
团队中的其他一些人在不同的时间看到过这个问题,但有人知道他们是如何解决这个问题的!
更新,考虑所有有用的答案,他们将帮助解决此问题的其他人。
Hotfix KB957912 - Updates for Visual Studio 2008 SP1 debugging and breakpoints
微软已发布更新 Microsoft Visual Studio 2008 SP1 调试器组件。这些更新 主要解决与之相关的问题 踩踏和打破断点。
这似乎已经为我排除了问题。
答案 0 :(得分:4)
少数事情:
确保在放置断点的位置可以访问代码。下面的代码可能不会在else块中引发断点,
如果(真)
printf(“Hello world”);
否则
printf(“没有你好世界”);
你会看到代码永远不会成为没有hello世界的一部分。
这可能听起来很有趣。但是关闭解决方案和visual studio以及删除导向器如释放/调试和重新启动系统可能会有所帮助。
答案 1 :(得分:2)
也许是一个愚蠢的问题而且它不太可能,因为它听起来像你的行为是间歇性的,但我没有看到其他人问过它 - 你检查过以确保你没有任何{{1的程序在它们上设置属性?
答案 2 :(得分:1)
最常见的原因是您的代码已经过优化。您需要一个调试版本来确保生成的可执行文件在运行时保持行的相同行。
答案 3 :(得分:1)
确保您的代码和pdb文件同步。如果发生这种情况,您可能需要清理/重建解决方案。
答案 4 :(得分:0)
如果你有很多线程,那么就会发生这种情况 - 因为多个线程会触发不同的断点。所以保持线程窗口打开,看看你是否仍然在同一个线程上。在这种情况下,带时间戳的跟踪/日志记录可能比在多线程应用程序中逐步执行代码更好。
可能发生这种情况的另一种情况是二进制文件和pdb不匹配。因此,在关闭优化的情况下进行完全重建 HTH
答案 5 :(得分:0)
如果你使用线程会发生这种情况
如果不是,请尝试重建您的应用程序
答案 6 :(得分:0)
Hotfix KB957912 - Updates for Visual Studio 2008 SP1 debugging and breakpoints
微软已发布更新 Microsoft Visual Studio 2008 SP1 调试器组件。这些更新 主要解决与之相关的问题 踩踏和打破断点。
这似乎已经为我排除了问题。