Visual Studio 2008 сообщение «Ошибка отладки подтверждения» при вызове функции QDomElement :: text () - PullRequest
0 голосов
/ 19 июля 2011

Я включил источник, ошибку и трассировку стека. Как мне решить эту проблему? Мне нужны указатели (объяснения) о том, как действовать в отношении этого

Исходный код:

QFile xmlInputFile(".\\gatewayipmonitor.xml");  
xmlInputFile.open(QIODevice::ReadOnly);

QByteArray xmlData(xmlInputFile.readAll());

QDomDocument doc;
doc.setContent(xmlData);

QDomElement docEl(doc.documentElement());
const QString tagName(docEl.tagName());

docEl.text();

Когда выполняется последняя строка - я получаю сообщение

Windows запустила точку останова в tests.exe.

Это может быть связано с повреждением кучи, что указывает на ошибку в tests.exe или любая из загруженных им библиотек DLL.

Это также может быть связано с тем, что пользователь нажимает клавишу F12, пока в файле tests.exe есть фокус.

Окно вывода может содержать больше диагностической информации. «

Когда я нажимаю продолжить - я получаю сообщение -

Программа: ... n \ tests \ Release \ tests.exe Файл: F: \ дд \ vctools \ crt_bld \ self_x86 \ элт \ dbgheap.c

Выражение: _CrtIdValidHeapPointer (pUserData)

Трассировка стека:

msvcr90d.dll!_free_dbg_nolock(void * pUserData=0x00a5f348, int nBlockUse=1)  Line 1317 + 0x30 bytes C++
msvcr90d.dll!_free_dbg(void * pUserData=0x00a5f348, int nBlockUse=1)  Line 1258 + 0xd bytes C++
msvcr90d.dll!free(void * pUserData=0x00a5f348)  Line 49 + 0xb bytes C++
QtCored4.dll!qFree(void * ptr=0x00a5f348)  Line 60 + 0xa bytes  C++
QtCored4.dll!QString::free(QString::Data * d=0x00a5f348)  Line 1185 + 0x9 bytes C++
QtCored4.dll!QString::~QString()  Line 883 + 0x23 bytes C++
tests.exe!test_GatewayIpMonitor()  Line 321 + 0xc bytes C++
tests.exe!main()  Line 343  C++
tests.exe!__tmainCRTStartup()  Line 586 + 0x17 bytes    C

Ответы [ 2 ]

1 голос
/ 19 июля 2011

Я запускал программу в сборке выпуска, но связывался с отладочными библиотеками сборки (Qtcored.lib).Это была проблема.

0 голосов
/ 19 июля 2011

это не куча коррупции. Вы удаляете плохую строку. узнайте, как этот экземпляр или указатель qstring (скорее всего) использовался, когда он был действительно плохим.

...