我正在研究一个程序,该程序在运行时会崩溃,但是在GDB中调试时可以正常工作。我已经看到this thread并删除了优化,并尝试检查了相关的局部变量和全局变量的值,似乎没有什么地方不合适。它不是一个并发程序,因此线程之间的竞争条件不应该有问题。 Windows事件查看器将该问题记录为堆损坏(ntdll.dll问题),但我不确定是什么原因引起的。我正在使用64位版本的MinGW进行编译。
程序本身很大,我甚至不确定要发布哪一部分。我真的不知道该如何进行或我还能检查什么。如果这是一个已知问题,任何指导将不胜感激,如果还有其他我可以发布的信息,请告诉我。
答案 0 :(得分:0)
我能够找到问题所在-在代码中的某个地方,我正在使用fscanf
读取类型为int
的数组,但是存储了它们的变量(即, fscanf
的第三个arg类型为char*
。将参数更改为类型int*
之一,并解决了该问题。