gpt4 book ai didi

delphi - 正确的 Delphi 编译器切换为停止在用户的代码中,而不是我的组件的代码中

转载 作者:行者123 更新时间:2023-12-03 15:02:34 26 4
gpt4 key购买 nike

我正在修改我们的 VCL 组件,以便最终用户的应用程序链接到我们的 dcu 文件,而不是每次都构建我们的源代码。我们一切正常,但我希望调试器在引发异常时停止在用户代码上。首先它会停在我们的 dcu 中并打开 CPU 窗口。我可以通过从 dcu 文件中删除调试信息来防止这种情况。但现在它仍然不会停止在用户代码中(就像 DevExpress 库和其他库一样)。

以下截屏视频是一个简短的示例。我第一次在 DevExpress 代码中引发异常,并且调试器在我的按钮事件中正确停止。第二次我在组件中引发异常,但调试器在调用堆栈上没有我的按钮事件,并且没有显示问题出在哪里。有什么想法吗?

http://screencast.com/t/NjhlOTRk

目前正在使用以下选项构建 DCU:

-$W+ -$D- -h -w -q

更新:我的组件和按钮事件之间的 TDataSet 方法似乎会导致此行为。如果我调用表的直接方法,我会得到预期的行为。我猜我对此无能为力,但我仍然很好奇为什么会发生这种情况。

最佳答案

如果源代码是构建的而不是 dcu 的,则配置中存在问题。

dcus 应位于搜索路径中,源位于浏览路径中。

这样编译器就不可能不使用 DCU,并且您仍然可以进行调试。

关于delphi - 正确的 Delphi 编译器切换为停止在用户的代码中,而不是我的组件的代码中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2836270/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com