Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: White Owl от Июль 31, 2009, 23:26



Название: Возврат QString из функции не работает в режиме отладки
Отправлено: White Owl от Июль 31, 2009, 23:26
Есть код:
Код:
QString foo() {
   QString tmp;
   tmp = ..... много разного
   qDebug() << "tmp in foo() =" << tmp;
   return tmp;
}

потом вызывается:
QString result;
result = foo();
qDebug() << "result in main() =" << result;
Это прекрасно работает если собирать программу в режиме релиза, но умирает на выходе из foo() если собирать в режиме отладки.
Спрашивается, кто виноват и что делать?

Qt 4.5.2


Название: Re: Возврат QString из функции не работает в режиме отладки
Отправлено: Авварон от Июль 31, 2009, 23:59
указатели есть? нити?


Название: Re: Возврат QString из функции не работает в режиме отладки
Отправлено: White Owl от Август 01, 2009, 00:18
Ни указателей, ни нитей.


Название: Re: Возврат QString из функции не работает в режиме отладки
Отправлено: Alex Custov от Август 01, 2009, 00:54
превышен буфер для qDebug()?


Название: Re: Возврат QString из функции не работает в режиме отладки
Отправлено: SASA от Август 03, 2009, 15:35
превышен буфер для qDebug()?
Можно по поподробнее?


Название: Re: Возврат QString из функции не работает в режиме отладки
Отправлено: Alex Custov от Август 03, 2009, 16:19
превышен буфер для qDebug()?
Можно по поподробнее?

Цитировать
Warning: The internal buffer is limited to 8192 bytes, including the '\0'-terminator.

Возможно, что при передачи более 8192 символов, происходит переполнение. Я такое видел когда-то, программа падала при большом кол-ве данных, передаваемых в qDebug().


Название: Re: Возврат QString из функции не работает в режиме отладки
Отправлено: White Owl от Август 03, 2009, 18:57
Увы, тоже не оно....
Использование qDebug() это последняя итерация танцев с бубном. До этого был и дебагер (намертво вешающийся при попытке выполнить return tmp;) и QMessageBox с теми же симптомами что и qDebug()...


Название: Re: Возврат QString из функции не работает в режиме отладки
Отправлено: spectre71 от Август 03, 2009, 21:01
Увы, тоже не оно....
Использование qDebug() это последняя итерация танцев с бубном. До этого был и дебагер (намертво вешающийся при попытке выполнить return tmp;) и QMessageBox с теми же симптомами что и qDebug()...

Здесь не весь код! Гадать можно до бесконечности!


Название: Re: Возврат QString из функции не работает в режиме отладки
Отправлено: Vexator от Август 05, 2009, 07:03
простите, может и не к месту, у меня возникает подобная ерунда если в
qWarning() отправить строку содержащую "%", так и не понял от чего она так себя ведет...