为什么在 Delphi 2010中重新构建项目后,调试项目时总是出现CPU窗口?

kqlmhetl  于 2023-08-04  发布在  其他
关注(0)|答案(3)|浏览(166)

每当我重新构建应用程序并尝试进入断点时,CPU窗口总是出现。据我所知,当DCU与源文件不匹配时,CPU窗口会出现,然而,在我的情况下,DCU肯定会被重新编译,并且没有旧的DCU或类似的东西。
奇怪的是,如果我关闭应用程序并重新打开项目,放置断点并运行它,它会正常工作。我甚至可以修改文件,只需按F9就可以运行项目,它工作得很好....似乎只有当我重建项目时(通过IDE项目菜单或项目上下文菜单),这个CPU窗口才不会闯入源代码(即使它可以找到它!).
我还注意到在调用堆栈中,一个名为Generics的单元总是堆栈的顶部,而不是我的断点所在的单元,这与我的断点在哪里无关。
有什么想法吗

0kjbasz6

0kjbasz61#

尝试检查您的 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

字符串
它也可以是Application Verifier(如果您正在使用它;如果你不是你应该)告诉你关于一个问题。

uyhoqukh

uyhoqukh2#

Here我发现建议检查Debugger Options中的Ignore non-user breakpoints(D2009)。

a14dhokn

a14dhokn3#

@anon的解决方案对我来说效果很好。原因是一个Delphi内部断点,如picture中的断点

相关问题