损坏:正常阻止删除SAXParser xerces后

时间:2014-02-03 09:18:39

标签: debugging mfc xerces

我正在使用一个旧的MFC应用程序,它使用xerces 2.7进行XML解析。

在调试模式下,在尝试调试堆栈损坏时,我已经能够将问题范围缩小到以下代码:

BOOL CXMLHandler::LoadFile(CString fileName)
{
XMLPlatformUtils::Initialize();

SAXParser* parser = new SAXParser();
delete parser;

XMLPlatformUtils::Terminate();

return TRUE;
}

删除解析器时,我收到错误

  

“损坏:正常阻止后(#1695)在0x0795EEA8。”

SAXParser类来自xerces。

我无法弄清楚代码有什么问题。任何人都可以帮助找出这里有什么问题。代码中其他地方的内存泄漏/损坏是否会导致此问题?

1 个答案:

答案 0 :(得分:1)

如果每次运行时#1695相同,请将以下内容添加到程序的开头:

_CrtSetBreakAlloc(1695);

分配编号1695是已损坏的数据。调试器将停在那里。