【发布时间】:2015-05-22 21:49:37
【问题描述】:
我面临一个相当特殊的问题:我有一个 Qt C++ 应用程序,它曾经可以正常工作。现在,突然我无法再启动它了。没有错误被抛出,什么也没有。
更多信息:
- 使用 Visual Studio 2012 在调试模式下启动应用程序时的最后一行输出:
程序“[4456] App.exe”已退出,代码为 -1 (0xffffffff)。
- 实际应用程序代码(= main() 中的第一行)从未被调用或至少没有触发断点,因此无法进行调试。
- 几秒钟的可执行进程出现在进程列表中,然后又消失了。
- Win 7 x64 和最新的 Windows 更新。
- 问题同时出现在两台不同的机器上。
- 应用程序最初是使用 Qt 5.2.1 构建的。今天我在测试方面切换到 Qt 5.4.1。但不出所料,没有变化。
- 未对源代码进行任何更改。该问题也适用于应用程序的现有版本。
- 在我看来,运行 DependencyWalker 并没有产生任何有趣的结果。
我完全没有想法。关于尝试或查看什么的任何指示?一个可执行文件怎么会突然停止工作而没有错误?
【问题讨论】:
-
@KerrekSB 不可能,因为应用程序的代码从未被触发,因此不会调用任何调试器。我已经尝试在 main() 方法的第一行设置断点,但从未达到。应用程序似乎之前退出了。
-
@PhilipAllgaier "... 应用程序的代码永远不会被触发..."
The program '[4456] App.exe' has exited with code -1 (0xffffffff).是什么让你这么认为?错误信息实际上与您的理论背道而驰! -
@πάνταῥεῖ 我会假设如果代码实际被执行,我在第一行代码中的断点也应该被触发,不是吗?我确实使用了一些单例,但它们每个都是独立的。还考虑到相同的代码以及现有的 EXE 构建曾经可以工作,知道为什么它们的行为可能会突然改变吗?
标签: c++ qt visual-studio-2012 executable exit