Delphi:如果我在项目中使用包,为什么“使用调试DCU”变得无效?

时间:2008-11-03 01:21:50

标签: delphi debugging packages

我正在构建一个使用JVCL插件系统的项目,该系统依赖于Delphi软件包,自从我将它添加到我的项目中以来,调试已经成为一场噩梦,因为我不再能够逐步进入任何VCL或RTL单位的来源。它们在调试器中都标记为灰点,(当相关函数出现在调用堆栈中时;有时我得到非常奇怪的结果),这让我发疯。有谁知道如何恢复我的调试DCU功能? (除了显而易见的:删除所有与插件相关的代码。这将工作,但它不会真正有用。)

编辑:为了清楚起见,我可以在我的项目中追踪其他任何内容。 JVCL代码。其他第三方图书馆。我自己的代码。所有这些都在调试器中显示得很好。只是没有Delphi RTL和VCL代码 - 编译器选项“使用调试DCU”的东西应该授予您访问权限。

3 个答案:

答案 0 :(得分:7)

这是按设计工作的。

使用软件包构建时,您正在执行软件包代码,而不是使用任何DCU。因此,编译DCU,您无法访问Debug DCU。

您可以完全关闭软件包,也可以不使用要调试的特定软件包进行编译。您可以选择使用或不使用的软件包,未使用的软件包将使用Debug DCU进行“可调试”。

答案 1 :(得分:2)

包只是DLL。您必须将调试信息包含在那些能够调试它们的信息中,这就是您想要做的。因此,您需要为VCL和RTL提供DEBUG包,而不是调试dcus。当您使用预构建的软件包时,甚至不再需要调试dcus。

答案 2 :(得分:-1)

可能是您所拥有的DCU已经过时,因此调试器不会进入代码。

通常删除所有DCU,然后执行Build All将解决此问题。

您可能还需要删除搜索路径中的DCU,以确定。当然先做备份......