gpt4 book ai didi

delphi - 有没有办法在Delphi中仅跟踪项目源?

转载 作者:行者123 更新时间:2023-12-03 14:39:57 25 4
gpt4 key购买 nike

我正在使用 Delphi 2010,我想知道是否有一种方法可以跟踪项目中的代码,而无需跟踪对包含的 VCL 的调用。

例如 - 您放置一个断点,然后使用 Shift+F7 逐行跟踪。现在,您会遇到对 VCL 中某些冗长过程的调用 - 在我的例子中,它通常是一个Measurement Studio 或其他组件,为一堆 I/O、OPC 或其他位绘制小玩意。无论如何,所发生的情况是调试器跳出事件源文件,打开组件源代码,并逐行跟踪该文件。通常这是我不关心的数百或数千行代码 - 我只想让它执行并返回到我的项目中的下一个源代码行。

显然,您可以通过在外部调用的每个实例周围设置断点来做到这一点,但通常断点太多,无法实现这一点 - 每次我想单步执行一个部分时,我都会花一个小时设置一百个断点的代码。

是否有设置或工具可以做到这一点?允许跟踪项目内的代码,同时默默地执行项目外部的代码吗?

最佳答案

调试器不会单步调试没有调试信息的单元,因此目标是让编译器忽略您不感兴趣的单元的调试信息。

将您的库单元放入单独的库项目中。这使您能够为这些单元进行单独的编译设置,而不会影响您的项目。在不启用调试信息的情况下编译库。然后从您的项目中删除这些库单元。您可以继续使用它们,但它们将不再属于您的项目。

这里的一个重要方面是,DCU 应驻留在与源代码不同的目录中。如果编译器找到 DCU 并且碰巧在同一文件夹中看到源代码,那么当您确实不希望重新编译该代码时,它可能会重新编译该代码。将项目的“DCU 输出文件夹”设置为默认值以外的其他文件夹。

要真正做到正确,您可以执行 VCL 的操作并编译两个不同版本的库。编译一个带调试信息的,一个不编译的,并将编译后的文件放在不同的目录中。将包含调试版本的目录添加到 Delphi 配置中;那里应该已经列出了一个包含 Delphi 提供的调试 DCU 的文件夹。

当您设置两个不同的版本时,您可以自己选择是否要单步执行库代码。只需在项目设置中切换“使用调试 DCU”选项即可。当您切换该设置时,Delphi 将自动在搜索路径中添加和删除调试版本文件夹。

<小时/>

请注意,即使您的库单元有一个单独的库项目,您也不需要链接或分发该项目生成的 DLL 或包。您可以继续直接在 EXE 项目中使用 DCU 文件。您只需设置单独的项目,以便可以为这些单元选择不同的编译设置。将库项目的 DCU 输出文件夹添加到 EXE 项目的搜索路径中,您可以直接继续使用这些单元,而无需分发库项目的 DLL 或包。

IDE 可能会尝试自动将新目录添加到搜索路径。不要容忍这样的事情。如果其中有 IDE 为您添加的源目录,而您不希望它存在于此,请随时将其删除。 IDE 只是想提供帮助,但它不知道您计划拥有单独的源文件夹和编译文件夹。

关于delphi - 有没有办法在Delphi中仅跟踪项目源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2768622/

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