问题在于:
我在笔记本电脑上使用Delphi XE开发了一个项目。当我在台式机上运行它时,我在这一行上遇到了“堆栈溢出”异常(我还在代码的不同部分使用了Writeln(),只有这一行是问题的根源):
S_List.LoadFromFile('Test.txt');
(S_List是在此行之前创建的本地TStringList)
但是,当我在笔记本电脑上运行相同的项目时,它的工作完全没有任何错误或例外。问题不在于方法本身,因为当我更改整个部分并使用'TStreamReader'再次写入时,会发生同样的异常。这次是StreamReader.ReadLine()
。此外,我更改了文件位置,名称,......问题仍然存在。
这似乎是一个文件系统问题,但我不知道这是怎么发生的。
有什么想法吗?是因为病毒还是恶意软件?
P.S:两者(笔记本电脑和PC)都有Win7和Delphi XE。此外,两者都有2GB RAM。编辑:为了清楚起见,我提出这个问题的主要目的不是找到异常的位置(通过提供一行代码就不可能发生,可以吗?)。但是,相反,为什么这个错误在不同的硬件中是不一致的呢?这有什么理由?另外,我怎样才能找到导致这种不一致的原因?
答案 0 :(得分:4)
我的猜测,猜测是我们所能做的,就是你有一个未初始化的局部变量。或者在释放它后访问的对象。我不确定这会导致你的堆栈溢出,但几乎任何事情都可能出现这种情况。除了疯狂之外,你应该使用具有完整调试设置的FastMM。
答案 1 :(得分:2)
如果某人在使用Delphi应用程序诊断特定环境中的异常时遇到困难,我强烈建议madExcept。它是免费的非商业用途,非常容易设置,非常有用。安装它,为项目启用它,构建调试版本并将其部署到问题机器。发生异常时,您应该获得一个非常详细的调用堆栈,说明问题发生的位置。
答案 2 :(得分:2)
我会检查一下:
答案 3 :(得分:0)
检查重复的DCU,如果可能的话,执行完整版本的已安装库和应用程序以查看错误是否仍然存在。