@luzhskij
geo c++

Почему Debug Assertion Failed?

Делаю парсинг некоторого xml файла.
bool function::test_xml()
{
...
const QString &fileName = "read.xml";
	QFile file(fileName);
	if (!file.open(QFile::ReadOnly | QFile::Text)) 
	{
		qDebug() << "Error: Cannot read file " << fileName << ": " << file.errorString();
		return false;
	}
	QString errorStr;
	int errorLine;
	int errorColumn;
	QDomDocument doc;
	if (!doc.setContent(&file, false, &errorStr, &errorLine,&errorColumn)) 
	{
		qDebug() << "Error: Parse error at line " << errorLine << ", " << "column " << errorColumn << ": " << errorStr;
		return false;
	}
...
	return true;
}


На выходе из функции программа вываливается в "_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)".
Почему так происходит - непонятно.

Аналогичный пример в книге Жасмин Бланшет, Марк Саммерфилд работает исправно.

windows7x64, visual studio 2010, qt4.8
  • Вопрос задан
  • 732 просмотра
Решения вопроса 2
Nipheris
@Nipheris Куратор тега C++
На глаз в коде ошибок в работе с памятью не видно. Могу предложить еще раз внимательно проверить, правильные ли библиотеки кьюта используются. Библиотеки должны соответствовать версии компилятора и рантайма, битности собираемого экзешника и конфигурации сборки (дебаг/релиз). Проверьте, все ли у вас верно подключено. Масса странных плавающих ошибок может появляться, если, например, кьют собран под 2010-ю студию, а используется в проекте с компилятором из 2013-й и наоборот.
Ответ написан
@luzhskij Автор вопроса
geo c++
В общем, оказалось, что цеплялись лишние библиотеки.
Отредактировал Additional Dependencies и всё стало нормально.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы