使用'堆损坏的APPCRASH' - 你如何调试这个?

时间:2016-01-20 01:38:25

标签: c++ windows multithreading sfml crash

我正在开发一个音频应用程序,可以让您使用32位Windows的文本文件创建和播放音乐。我使用C ++作为语言,使用TDM-gcc 4.8.1(sjlj)作为我的工具链。我使用的库是 - SFML,portaudio和libsndfile。

APPCRASH error message

关闭应用时,我开始收到此APPCRASH错误。我注意到只有当我打开文件打开/保存对话框然后尝试退出应用程序时才会发生此错误。多线程可能与此有关,因为我在使用SFML的Thread类的不同线程上打开文件对话框。 (这样主窗口可以自行更新)我想portaudio也可能使用自己的线程来处理自己的缓冲和回调?

由于程序编译得很好而且我没有错误,所以我很难知道造成这种情况的原因。我一直在改变和评论程序的许多部分,但没有运气......异常代码c000374据说意味着“堆腐败”,但这究竟意味着什么?常见原因是什么?我该怎么做才能缩小可能的原因?

另一次,我收到了这条消息:

Another error with physical addresses

但是我怎么知道哪个地址对应于程序的哪个部分? (或哪个数据或类)是否有一个好的调试器可以将类,方法和变量名称映射到可执行文件使用的物理地址?

0 个答案:

没有答案