C程序在运行时崩溃,可以在GDB中运行

时间:2018-08-08 14:43:18

标签: debugging crash mingw-w64

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

程序本身很大,我甚至不确定要发布哪一部分。我真的不知道该如何进行或我还能检查什么。如果这是一个已知问题,任何指导将不胜感激,如果还有其他我可以发布的信息,请告诉我。

1 个答案:

答案 0 :(得分:0)

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