为什么在Delphi 2010中重建后尝试调试项目时总会出现CPU窗口?

时间:2010-05-26 11:54:48

标签: delphi debugging delphi-2010

每当我重建我的应用程序并尝试进入断点时,CPU窗口总是会出现。根据我的理解,当DCU与源文件不匹配时,会出现CPU窗口,但是,在我的情况下,DCU将被彻底重新编译,并且没有旧的,或者类似的东西。

这里奇怪的是,如果我关闭应用程序并重新打开项目,放置断点并运行它可以正常工作。我甚至可以修改文件,只需按F9即可运行项目,它运行正常....它似乎只是当我重建项目时(通过IDE项目菜单或项目上下文菜单),这个CPU窗口永远不会闯入来源(即使它能找到它!)。

我还注意到在callstack中,一个名为Generics的单元始终是堆栈的顶部,而不是我的断点所在的单位,这与我的断点无关。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

尝试检查您的Delphi事件日志。

有时,当应用程序执行非常糟糕的操作时,Windows本身会编写OutputDebugString然后触发断点,例如:

HEAP[Project1.exe]: HEAP: Free Heap block 32959a8 modified at 32959c0 after it was freed
Windows has triggered a breakpoint in Project1.exe.
This may be due to a corruption of the heap, and indicates a bug in Project1.exe or any of the DLLs it has loaded.
The output window may have more diagnostic information

它也可以是应用程序验证程序(如果你正在使用它;如果你不是你应该)告诉你一个问题。

答案 1 :(得分:0)

Here我找到了在Ignore non-user breakpoints(D2009)中查看Debugger Options的建议。