LINUX.ORG.RU

[вещества] Qt шалят

 


0

0

ну это не совсем сюда, но больше некуда. одним тихим вечерком я ковырял xml через sax. и каждый раз, когда я пытался ковырнуть поглубже, приходила ошибка «error triggered by consumer», намекая что я ССЗБ. использовав магический хрустальный шар, я выяснил, что ошибка рождается в недрах вот этого куска кода:

bool TestHandler::endElement(const QString &namespaceURI, const QString &localName, const QString &qName)
{
    if (qName=="question") MyTest->addItem(CurrentQuestion);
    else
        if (qName=="answer")
        {
            CurrentQuestion->SetAnswer(TextQue);
        }
}

бился я, бился с ошибкой, устал, и собрался уходить. на прощанье я кинул медальон с надписью printf(«end»); прямо после CurrentQuestion->SetAnswer(TextQue); и всё заработало.

теперь убираешь printf, ничего не работает. добавляешь printf, всё работает. что за дела, о великие гуру кутей?

★★★★★

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

anonymous
()
Ответ на: комментарий от k0l0b0k

Щас не вспомню. Последняя из федориной репы. Хотя я энное время назад сдуру тестинг включил. Тестинг уже выключен, но возможно версия ещё не стабилизировалась.

RedPossum ★★★★★
() автор топика

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

Анон шарит

ftor
()

где-то у тебя бьётся память

alex_custov ★★★★★
()

Присоединяюсь к тем, кто говорит про память.

Zhbert ★★★★★
()
Ответ на: комментарий от RedPossum

Память может быть испорчена где то ранее. Просто последствия этого проявляются в этом месте.

anonymous
()

>MyTest->addItem(CurrentQuestion);

прототип сей функции покажите. вместе с телом, желательно

xydo ★★
()
Ответ на: комментарий от RedPossum

было бы неплохо
-void QestQuestion::SetAnswer(QString A)
+void QestQuestion::SetAnswer(const QString & A)

xydo ★★
()
Ответ на: комментарий от RedPossum

>>чую что неправильно это.

Если где-то память освобождается потом - то как раз и могут быть проблемы.

MuZHiK-2 ★★★★
()
Ответ на: комментарий от RedPossum

>Если где-то память освобождается потом - то как раз и могут быть проблемы.
да, явно с памятью что-то не то...

надо загрузить в gdb и прогнать до ошибки. далее смотреть стек

xydo ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.