VS2008 / 2010调试器更改了应用程序行为

时间:2010-07-20 12:57:03

标签: delphi debugging visual-studio-2008

我有一个非常简单的Delphi 2010 dll,我从Visiual Studio 2008 C ATL控制台应用程序加载(MVF GUI应用程序也不起作用)。当我直接从IDE调试控制台应用程序 - 没有断点 - 应用程序的输出不正确但是当我直接运行应用程序或者如果我使用调试器附加到进程时它会100%工作。从Delphi控制台应用程序调试相同的dll(即从IDE运行它)也可以。

VS调试器似乎会破坏应用程序,具体取决于您运行它的方式。 VS2010也是如此!

我已经100%肯定 - 几次! - dll导出的数据类型和调用约定以及控制台应用程序中的数据类型和调用约定匹配。我可以详细介绍,但我不想将此事与可能无关的信息混淆。如果我提供的内容还不够,请告诉我是否必须详细说明代码。

有没有人经历过这种事情并知道如何解决它?

1 个答案:

答案 0 :(得分:0)

我曾经遇到过类似的问题(IDE /调试器和独立应用程序中的行为不同)。事实证明,我已经检查了未设置变量的值。调试器在以前使用的内存块中分配它(总是!),这样该值不为空并且应用程序正常工作(因为只有条件块是错误的)。但是,OS有时会将应用程序放在空的内存块中(填充0),条件失败并且应用程序崩溃。

也许这就是问题所在?尝试使用OutputDebugString()来跟踪库运行时期间的变量值。如果没有一些源代码,我相信,这并不容易说,原因可能是什么。

致敬 - Spook。

相关问题