每当我重建我的应用程序并尝试进入断点时,CPU窗口总是会出现。根据我的理解,当DCU与源文件不匹配时,会出现CPU窗口,但是,在我的情况下,DCU将被彻底重新编译,并且没有旧的,或者类似的东西。
这里奇怪的是,如果我关闭应用程序并重新打开项目,放置断点并运行它可以正常工作。我甚至可以修改文件,只需按F9即可运行项目,它运行正常....它似乎只是当我重建项目时(通过IDE项目菜单或项目上下文菜单),这个CPU窗口永远不会闯入来源(即使它能找到它!)。
我还注意到在callstack中,一个名为Generics
的单元始终是堆栈的顶部,而不是我的断点所在的单位,这与我的断点无关。
有什么想法吗?
答案 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
的建议。