我有一个多线程应用程序。它还使用一些非托管代码,一个ODBC驱动程序。如果我在一个特定的线程中,有时我会跳过F10,但它不会在下一行停止,程序运行就好像我已经按F5继续。任何想法为什么会这样?
更新1
当我说程序运行时,我指的是我所处的线程。我有一个信号线程的文件。我打破了C,打了F10,没有任何休息,我得到了Z的全部指示。
答案 0 :(得分:4)
这是Visual Studio 2008中的一个错误。它由this hotfix更正。
(我有同样的问题。开车送我绝对疯了。)
答案 1 :(得分:1)
一种可能性是您正在调试的线程继续(当您按F10时),并在子例程返回断点之前阻塞/睡眠子事件(即您的“下一个”指令);当你说“程序运行”时,可能只有其他线程在运行。
答案 2 :(得分:1)
如果没有更具体的细节,很难确切地知道为什么会看到这种行为,因为有几个原因导致这种情况发生。线程可能被阻塞,可能发生异常(F10跳过),或者为该模块加载的符号可能与源名称不匹配,仅举几例。
您可以尝试阅读this question的回复 它可能包含其他有用的信息。
答案 3 :(得分:1)
如果您踩到的方法引发异常,也会发生这种情况。