将 JVCL 的调试 DCU 与 C++Builder 结合使用

发布于 2024-09-19 00:20:28 字数 727 浏览 8 评论 0原文

如何使用 C++Builder 调试 JVCL 代码?我在安装 JVCL 时启用了构建调试 DCU,在项目的 Delphi 设置下打开了“使用调试 DCU”(C++ 设置下似乎没有类似的选项),并且我 禁用使用包进行构建。尽管如此,单步仍然会跳过 JVCL 代码,并且如果 JVCL 函数出现在堆栈跟踪中,双击它只会显示反汇编。

调试 RTL 和 VCL 代码工作正常;我遇到的问题只是 JVCL 代码。

有什么想法吗?

编辑:我还注意到 JVCL 调试 DCU 对于 Delphi 应用程序运行良好。我尝试在 进程监视器 运行时构建我的项目,并且一个 C++Builder 应用程序,它甚至没有试图找到 JVCL DCU(所以这显然不仅仅是我的搜索路径的问题)。但是,它确实会查找核心 VCL 文件的 DCU。因此,显然 C++Builder 确定其依赖关系的方式与 Delphi 不同,并且显然 JVCL 依赖关系的处理方式与核心 VCL 依赖关系不同,但我不知道如何或为什么。

How do I debug JVCL code using C++Builder? I enabled building debug DCUs when I installed JVCL, I turned on "use debug DCUs" under my project's Delphi settings (there doesn't appear to be an analogous option under C++ settings), and I disabled building with packages. In spite of all of this, single step still skips over JVCL code, and if a JVCL function shows up in a stack trace, double-clicking on it only shows disassembly.

Debugging RTL and VCL code works fine; it's only JVCL code that I'm having problems with.

Any ideas?

Edit: I've also noticed that JVCL debug DCUs work fine for Delphi apps. I tried doing building my project while Process Monitor was running, and for a C++Builder app, it's not even trying to find the JVCL DCUs (so it's apparently not just a problem with my search path). However, it does look for and find DCUs for core VCL files. So apparently C++Builder is determining its dependencies differently than Delphi, and apparently JVCL dependencies are being treated differently than core VCL dependencies, but I don't know how or why.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

沧笙踏歌 2024-09-26 00:20:28

设置“使用调试 DCU”选项会将调试路径选项的内容添加到搜索路径选项的前面,以便下次链接代码时,链接器将使用调试文件而不是普通文件。

选中该框后,请确保包含 JVCL DCU 调试版本的目录位于您的搜索路径中。如果不是,则将 JVCL 路径添加到调试路径(紧接在 $(BDS)\Lib\Debug 之后)并切换“使用调试 DCU”选项以重置搜索路径。

Setting the "use debug DCUs" option adds the contents of the debug path option onto the front of the search path option so that next time your code is linked, the linker will use the debug files instead of the normal files.

When you've checked that box, make sure that the directory that contains the debug versions of the JVCL DCUs is on your search path. If it's not, then add the JVCL path to your debug path (right after $(BDS)\Lib\Debug) and toggle the "use debug DCUs" option to reset the search path.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文