C++ 什么会导致程序异常终止?
MFC应用程序(使用SQLite3.dll访问数据库,以及其他dll访问硬件)异常终止。没有特定的终止顺序:( 我的申请是C++ 什么会导致程序异常终止?,c++,mfc,termination,C++,Mfc,Termination,MFC应用程序(使用SQLite3.dll访问数据库,以及其他dll访问硬件)异常终止。没有特定的终止顺序:( 我的申请是 单线程应用程序 使用异常处理 使用6个以上的DLL访问不同的硬件 在WinXP SP2上运行 起初我认为可能是因为堆栈溢出,后来我发现不是。有人能告诉我程序异常终止的一般原因吗?如果有人遇到类似问题或有任何提示或线索,请将其传递给我 提前感谢一般来说,发生车祸的一般原因是: 读取不是你的内存 写下不是你的记忆 除零 在中断中做一些你不应该做的事情 free() 也可能:
提前感谢一般来说,发生车祸的一般原因是:
- 读取不是你的内存
- 写下不是你的记忆
- 除零
- 在中断中做一些你不应该做的事情
free()
- 有一个无恶意的例外
- 在MFC中发现一个错误
- 您的6个硬件访问DLL之一正在执行上述任一操作
- 您遇到了某种硬件故障
有很多选择:p由于这是一个运行时问题,我建议您将调试语句发送到日志文件。包括函数名,可能还有时间戳。写入文件后始终刷新输出缓冲区,因为这提供了在异常发生之前将最后一行写入文件的更好可能性。您是否尝试通过调试器运行它?您是否可以在调试器中运行程序,并提供崩溃的堆栈跟踪和/或Visual Studio输出框中的文本?还可以尝试在调试模式下构建,查看是否获得任何断言…或至少是正在执行的代码。是的,我尝试在调试模式下重新创建它,但似乎没有终止不正常。只有在发布模式下才会发生。您还可以尝试向发布版本添加调试符号。这仍然会复制崩溃,但希望在崩溃发生时可以获得堆栈跟踪。