【问题标题】:Can I step into the VCL (Pascal) code while debugging a C++ app?我可以在调试 C++ 应用程序时进入 VCL (Pascal) 代码吗?
【发布时间】:2011-04-22 22:02:22
【问题描述】:

我有一个我们正在迁移到 C++ 的 Delphi 应用程序。在调试我的 Delphi 代码时,我经常做的一件事是进入 VCL 本身以准确了解正在发生的事情,以跟踪​​一些错误。这在 C++Builder 中可行吗?

假设我在 C++Builder 中并调用“ShowMessage”。我可以在调试会话中进入该调用并即时切换到 Pascal 吗?

【问题讨论】:

    标签: delphi debugging c++builder vcl


    【解决方案1】:

    这是可能的,但您必须更改两个设置。 您必须在链接器设置中关闭动态 RTL。 您必须在包设置中禁用与运行时包的链接。

    【讨论】:

    • XE 中是否还存在运行时包规则,并提供了调试 DCP?
    • @Mason,不。C++ 需要 tds 文件以及 DCP。它在我的雷达上,所以我会努力争取。
    • @Mason:在所有版本的 C++ 中,您必须启用调试 .DCU 并禁用动态 RTL 和运行时包。如果 VCL 源代码包含在外部库中,则调试器无法单步执行它,它必须直接编译到被调试的应用程序中。
    • @Rob 感谢您指出这一点尚不清楚。 “规则”是(并且一直是)您需要调试 DCP 和 TDS 文件,以便 C++ 调试到 BPL。 (动态运行时包)使用 XE,您现在可以获得 Embarcadero 提供的许多包所需的 DCP 文件。我们未能为相同的软件包提供 TDS 文件。我打算看到这一点得到纠正。这意味着,可以调试到您自己构建的 bpls,但不能调试 XE 附带的那些。 (或更早)
    • 赏金仍然在此开放,但启用调试 DCU 并禁用动态 RTL 和运行时包是正确的答案。它工作正常,我一直这样做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-05
    • 1970-01-01
    • 1970-01-01
    • 2011-02-22
    • 1970-01-01
    • 2011-03-20
    • 2018-12-10
    相关资源
    最近更新 更多