VS2008,C。还使用了一些预先构建的库。 当我在调试器中调试我的代码并调用库函数时,我得到了这个:
HEAP [unit_test.exe]:Heap在附近的承诺范围内缺少最后一个条目 35c70 Windows在unit_test.exe中触发了断点。
这可能是由于堆的损坏,这表明存在错误 unit_test.exe或它加载的任何DLL。
这也可能是因为用户在unit_test.exe时按F12 对焦。
输出窗口可能包含更多诊断信息。
关于如何调试这个的任何想法?
更新:我重构了代码并看到我在执行printf()时获得了弹出窗口。当有free()时我也会得到它。我注释掉那些行,现在当有malloc()时,我得到了堆损坏弹出对话框。
答案 0 :(得分:4)
我建议您首先使用Application Verifier来测试堆损坏。 Application Verifier是Microsoft提供的免费工具,可帮助识别资源泄漏和堆损坏。您可以在网址找到App Verifier:http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=20028您可以在http://technet.microsoft.com/en-us/library/bb457063.aspx
找到如何为堆损坏和其他内容启用它在这些情况下通常很有用。