【发布时间】:2013-02-17 00:59:12
【问题描述】:
我编写了一个使用一些 Qt 静态库的 C++ 代码。
我使用 MSVS2010(在 Windows 7 上)编译代码,然后在第二台机器上运行创建的 .exe-file。
我在同一台机器上编译了完全相同的代码 2 次不同的时间,当第二台机器的 (Windows XP) 屏幕保护程序启动时,生成的 .exe 代码在第二台机器上崩溃,我再次编译了相同的代码(代码或编译器或其设置没有任何变化)并且生成的.exe-file 工作正常。
有人知道是什么原因造成的吗?
有没有办法调试这个问题? 在不同时间可能打开不同的其他程序这一事实是否会影响编译?
【问题讨论】:
-
它几乎可以是任何东西。我建议像调试任何其他崩溃情况一样调试崩溃。
-
没有看到代码几乎不可能告诉...
-
@Oil Charlesworth 我是这方面的初学者,最好的调试方法是什么?如果我在调试模式下运行代码,当它崩溃时它会给我任何信息吗?
-
@TJ1:如果你在调试器中运行代码,是的,它应该停在导致崩溃的那一行,允许你检查变量等。
-
我猜我会说这是堆损坏。崩溃可以重现吗?你能把代码减少到导致崩溃的最简单的版本吗?你有可以检查内存泄漏的工具吗?