Debugging C程序运行时崩溃,在GDB中工作

Debugging C程序运行时崩溃,在GDB中工作,debugging,crash,mingw-w64,Debugging,Crash,Mingw W64,我正在编写一个程序,它在运行时会崩溃,但在GDB中调试时工作正常。我已经看到并删除了优化,并尝试检查相关的局部和全局变量的值,没有任何东西看起来不合适。它不是一个并发程序,因此线程之间不应该存在争用条件问题。Windows事件查看器将此问题记录为堆损坏(ntdll.dll存在问题),我不确定是什么原因导致了此问题。我正在使用64位版本的MinGW进行编译 程序本身相当大,我甚至不确定该发布哪个部分。我真的不知道该怎么做,也不知道还能查到什么。如果这是一个已知的问题,请提供任何指导,如果有任何其他

我正在编写一个程序,它在运行时会崩溃,但在GDB中调试时工作正常。我已经看到并删除了优化,并尝试检查相关的局部和全局变量的值,没有任何东西看起来不合适。它不是一个并发程序,因此线程之间不应该存在争用条件问题。Windows事件查看器将此问题记录为堆损坏(ntdll.dll存在问题),我不确定是什么原因导致了此问题。我正在使用64位版本的MinGW进行编译


程序本身相当大,我甚至不确定该发布哪个部分。我真的不知道该怎么做,也不知道还能查到什么。如果这是一个已知的问题,请提供任何指导,如果有任何其他信息,请告诉我。

我能够追踪到这个问题-在代码中的某个地方,我使用
fscanf
读取
int
类型的数组,但是它们存储在其中的变量(即,
fscanf
)的第三个参数的类型为
char*
。将参数更改为
int*
类型之一,解决了问题。

进程崩溃时是否可以转储内存?打开该文件后,可以查看内部并查看导致崩溃的原因。