Russian Qt Forum

Qt => Общие вопросы => Тема начата: Syveren от Май 30, 2013, 14:51



Название: Странное поведение qDebug()
Отправлено: Syveren от Май 30, 2013, 14:51
Доброе время суток! Есть простейший код
Код
C++ (Qt)
QApplication a(argc, argv);
int N = 128;
for(int i=0;i<N;++i)
  qDebug()<<i<<") ";
return 0;
 
Вывод:
Запускается D:\projects\qt\sound\soundTest\release\soundTest.exe...
0 )  
1 )  
2 )  
...
35 )  
36 )  
D:\projects\qt\sound\soundTest\release\soundTest.exe завершился с кодом 0
Количество выведенных цифр варьируется, но не доходит до конца.
Это только у меня такая фигня или это нормальное поведение????


Название: Re: Странное поведение qDebug()
Отправлено: mutineer от Май 30, 2013, 14:55
У меня нормально отрабатывает


Название: Re: Странное поведение qDebug()
Отправлено: LEO от Май 30, 2013, 15:21
от 1-127 включительно... код работает


Название: Re: Странное поведение qDebug()
Отправлено: kambala от Май 30, 2013, 17:35
возвращай вместо 0 a.exec() — тогда точно отработает, хоть и не завершится автоматически


Название: Re: Странное поведение qDebug()
Отправлено: lit-uriy от Май 30, 2013, 21:38
>>возвращай вместо 0 a.exec()
это ерунда какая-то. прежде чем управление будет передано на эту строку должен отработать цикл.


Название: Re: Странное поведение qDebug()
Отправлено: Syveren от Май 30, 2013, 22:25
Если вернуть a.exec() резульат нормальный, но программа не завершится.
Сейчас попробовал много-много раз нажимал запуск: иногда и до 127 доходит, но иногда нет (99,120,67...)
У меня Qt 5.0.1 стоит, может qDebug в отельном потоке работает и не успевает все вывести?
А если так:
Код
C++ (Qt)
for(int i=0;i<N;++i)
       std::cout<<i<<"\n";
то работает нормально!


Название: Re: Странное поведение qDebug()
Отправлено: lit-uriy от Май 30, 2013, 22:32
Syveren ты из командной строки запускаешь, т.е. по завершении программы командная строка остаётся открытой?


Название: Re: Странное поведение qDebug()
Отправлено: Syveren от Май 30, 2013, 22:33
Я через вывод QtCreator'a смотрю, может с ним проблемы?
Сейчас дописал CONFIG+= console, все стало нормально работать! чудеса)
UPD: Как я выяснил данный глюк появляется у меня только, если не стоит CONFIG+= console в pro файле.
Спасибо всем за помощь)


Название: Re: Странное поведение qDebug()
Отправлено: mutineer от Май 31, 2013, 09:07
qDebug() работает в том же потоке, откуда вызван


Название: Re: Странное поведение qDebug()
Отправлено: Syveren от Май 31, 2013, 09:41
Сейчас проверил на linuxe все норм и без CONFIG+=console.