MFC 应用程序(使用 SQLite3.dll 进行 DB 访问,以及其他 DLL 用于访问硬件)异常终止。没有特定的终止顺序:(我的申请是
- 单线程应用程序
- 使用异常处理
- 使用超过 6 个 DLL 来访问不同的硬件
- 在 WinXP SP2 上运行
最初我认为这可能是因为Stack Overflow,后来我发现它不是。有人能告诉我程序异常终止的所有一般原因是什么吗?如果有人遇到过类似的问题或有任何提示或线索,请转发。
提前致谢
MFC 应用程序(使用 SQLite3.dll 进行 DB 访问,以及其他 DLL 用于访问硬件)异常终止。没有特定的终止顺序:(我的申请是
最初我认为这可能是因为Stack Overflow,后来我发现它不是。有人能告诉我程序异常终止的所有一般原因是什么吗?如果有人遇到过类似的问题或有任何提示或线索,请转发。
提前致谢
一般来说,崩溃的一般原因是:
free()
一个指针不止一次可能还有:
也许您将错误的缓冲区传递给您的一个硬件 DLL,或者忘记锁定一些内存,或者您甚至可能在 DLL 和它们的标头之间存在版本不匹配。
有很多选择:P
由于这是一个运行时问题,我建议您将调试语句发送到日志文件。包括函数名称,也许还有时间戳。写入文件后始终刷新输出缓冲区,因为这提供了在异常发生之前将最后一行写入文件的更好可能性。