在Delphi 2009中使用调试DCU选项?

在Delphi 2009中使用调试DCU选项?,delphi,delphi-2009,Delphi,Delphi 2009,在项目选项中将“Use debug.dcus”选项设置为True时,我的应用程序中的方法调用无法按预期工作 比如说, 我调用方法func(a,b,c) 在“func”定义中,c的值被指定给“a”,a的值被指定给“c”,一切都变得疯狂 我试图在示例应用程序中创建它,但没有成功。这只发生在我的现场项目中 有人面临同样的问题吗 从delphi文档中,我看到Debug DCU选项使用堆栈框架构建信息。跟这有关吗 Pavan.这是一个明显的问题,但是您是否确保进行完整重建而不仅仅是正常编译?无论何时更改项

在项目选项中将“Use debug.dcus”选项设置为True时,我的应用程序中的方法调用无法按预期工作

比如说,

我调用方法func(a,b,c)

在“func”定义中,c的值被指定给“a”,a的值被指定给“c”,一切都变得疯狂

我试图在示例应用程序中创建它,但没有成功。这只发生在我的现场项目中

有人面临同样的问题吗

从delphi文档中,我看到Debug DCU选项使用堆栈框架构建信息。跟这有关吗


Pavan.

这是一个明显的问题,但是您是否确保进行完整重建而不仅仅是正常编译?无论何时更改项目设置,都必须进行完全重建,否则最终将导致未定义的行为。(这是“一切都变得疯狂”的技术术语。)

这是一个很明显的问题,但是您是否确保进行完整的重建,而不仅仅是正常的编译?无论何时更改项目设置,都必须进行完全重建,否则最终将导致未定义的行为。(这是“一切都变得疯狂”的技术术语。)

如果你不能创建一个示例应用程序,那么它显然是你的实时项目中的某些东西,而不是你所期望的


我只能建议你通过复制你的实时项目来解决这个问题,然后一次系统地删除一件东西。使问题消失的步骤将帮助您缩小问题所在的范围。

如果您无法创建示例应用程序,那么很明显,它一定是您的实时项目中的某些东西,而不是您可能期望的


我只能建议你通过复制你的实时项目来解决这个问题,然后一次系统地删除一件东西。使问题消失的步骤将帮助您缩小问题所在的范围。

您是否使用泛型或匿名方法?即使安装了Update 3,Delphi 2009编译器中仍然存在一些微妙的错误——主要与新功能有关——很难简化为一个简单的测试用例。

您是否使用泛型或匿名方法?即使安装了Update 3,Delphi 2009编译器中仍然存在一些微妙的错误——主要与新功能有关——很难简化为一个简单的测试用例。

-1代表“一切都变得疯狂”。-)堆栈帧是一个单独的选项,使用VCL源的调试信息调试dcu的构建code@TOndrej:您好,先生……那么,在一起花了几个小时之后,您还希望看到什么样的功能呢?这是不是只有在您呼叫RTL/VCL设备时才会发生,或者在您自己的代码中调用方法时?如果没有演示问题的代码,那么我们真的无法为您提供太多帮助。-1代表“一切都变得疯狂”。-)堆栈帧是一个单独的选项,使用VCL源的调试信息调试dcu的构建code@TOndrej:您好,先生……那么,在一起花了几个小时之后,您还希望看到什么样的功能呢?这是不是只有在您呼叫RTL/VCL设备时才会发生,或者在您自己的代码中调用方法时?如果没有演示问题的代码,那么我们真的无法为您提供太多帮助。嗨,Mason,是的,我重建了整个项目组。我删除了所有dcu文件,并确保所有内容都是最新生成的。但同样的行为。除此之外,IIRC在修改IncludeDibles时也会这样。嗨,梅森,是的,我重建了整个项目组。我删除了所有dcu文件,并确保所有内容都是最新生成的。但同样的行为。除此之外,IIRC在修改IncludeDibles时也会受到影响。嗨,梅森,谢谢你对找到这个问题的解决方案表现出兴趣。实际上,我没有使用任何新功能。我用参数func1(obj:TObject;a:integer;d:Tdatetime)和func1(obj:TObject;f:Double;d:Tdatetime)重载了方法。我第一次观察到这种情况下的错误行为。因此,我认为这可能与方法重载有关,我尝试定义两个独立的函数,但仍然是相同的行为。请注意,只有当我将“Use debug DCUs”选项设置为True时,才会发生这种情况。如果我没有设置该选项,一切都会正常工作。嗨,Mason,感谢您对找到这个问题的解决方案表现出兴趣。实际上,我没有使用任何新功能。我用参数func1(obj:TObject;a:integer;d:Tdatetime)和func1(obj:TObject;f:Double;d:Tdatetime)重载了方法。我第一次观察到这种情况下的错误行为。因此,我认为这可能与方法重载有关,我尝试定义两个独立的函数,但仍然是相同的行为。请注意,只有当我将“Use debug DCUs”选项设置为True时,才会发生这种情况。如果我不设置该选项,一切正常。