c++ - 退出后调试崩溃? (主要返回后)

标签 c++ multithreading debugging visual-c++ windows-vista

这是一个相当复杂的错误,我尝试四处寻找其他帮助来源,但出于我不明白的原因,“Vista 中的程序崩溃”并不是最有帮助的查询。

我遇到的问题是我正在处理的程序 - 使用 OpenGL 和 Windows API 的图形化多线程数据可视化软件 - 在 WinMain() 返回后崩溃。我已经尝试逐步执行关闭例程并查看堆栈跟踪,最后一段不是汇编的代码是 _crtExitProcess,它在实际的 ExitProcess(0) 调用中崩溃。之后,堆栈跟踪显示 kernel32.dll 和四个 ntdll.dll,这是它实际崩溃的地方。

此错误仅在 Vista 上出现,在 XP 上运行时完全相同的代码可正常退出。我真的想不出任何可以帮助我调试这个问题的东西,而调试这个问题是我从未真正学过的东西。任何帮助将不胜感激。

最佳答案

我已经做了一些挖掘,并且发现了一些帖子表明您不是唯一一个遭受此困扰的人:

特别是第二个,Tom Chm 提到:

We believe we have identified the root cause of our crash, and adding a virtual destructor to our interface class wrapper seems to resolve our problem. But we would like to know the exact cause of the crash to verify that we didn't just sweep the actual problem under the rug.

问题可能出在某个地方的析构函数,或缺少析构函数。如果您有办法附加调试器并单步执行关闭过程,它可能会有所帮助。

您可能想通读整个线程,看看是否有什么可以学习的。也就是说,如果您还没有在搜索中找到这些帖子,当然可以。

关于c++ - 退出后调试崩溃? (主要返回后),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/450585/

相关文章:

c++ - 当基类使用它时在类层次结构中使用虚拟

C++ 为什么文件没有被追加或覆盖?

c - 使用几个线程使用 WINAPI

c++ - 如何快速测试新的 Boost 版本和库?

c++ - 帮忙做这个设计

c++ - QThread 中未收到 udp 数据包

java - 静态同步方法上的锁定是否会影响其实例的非静态同步方法?

debugging - 升级后如何在 VS 2015 中启用 native 编辑并继续?

c - 解释 C 中这个 "static variable"的行为

Android WIFI ADB 插件不适用于某些 Android 真实设备?