Russian Qt Forum
Ноябрь 24, 2024, 04:56 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Возврат QString из функции не работает в режиме отладки  (Прочитано 5940 раз)
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
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #1 : Июль 31, 2009, 23:59 »

указатели есть? нити?
Записан
White Owl
Гость
« Ответ #2 : Август 01, 2009, 00:18 »

Ни указателей, ни нитей.
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #3 : Август 01, 2009, 00:54 »

превышен буфер для qDebug()?
Записан
SASA
Гость
« Ответ #4 : Август 03, 2009, 15:35 »

превышен буфер для qDebug()?
Можно по поподробнее?
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #5 : Август 03, 2009, 16:19 »

превышен буфер для qDebug()?
Можно по поподробнее?

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

Возможно, что при передачи более 8192 символов, происходит переполнение. Я такое видел когда-то, программа падала при большом кол-ве данных, передаваемых в qDebug().
Записан
White Owl
Гость
« Ответ #6 : Август 03, 2009, 18:57 »

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

Увы, тоже не оно....
Использование qDebug() это последняя итерация танцев с бубном. До этого был и дебагер (намертво вешающийся при попытке выполнить return tmp;) и QMessageBox с теми же симптомами что и qDebug()...

Здесь не весь код! Гадать можно до бесконечности!
Записан
Vexator
Гость
« Ответ #8 : Август 05, 2009, 07:03 »

простите, может и не к месту, у меня возникает подобная ерунда если в
qWarning() отправить строку содержащую "%", так и не понял от чего она так себя ведет...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.05 секунд. Запросов: 22.