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

Mas*_*ler 2 delphi debugging packages

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

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

Nic*_*ges 7

这是按设计工作的.

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

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

  • 尽管如此,这是一种耻辱.因为某些时候应用程序依赖于使用运行时包(插件结构). (2认同)