Кстати, не знаю связано ли это с вашими коммитами, но при попытках отладки когда содержащего лямбды и range for qtcreator регулярно говорит, что gdb process crashed. Причем если при заходе в какую-то функцию он падает, то падает стабильно. Причем видно, что остановился на breakpoint, видно, что начал выводить local watch - и через мгновение crash. При этом gdb из консоли и qtcreator 2.4.0 отлаживает нормально. Ощущение, что идут какие-то дополнительные команды в gdb, которые его и роняют. Вы вроде по коду лазили, есть мысли из-за чего это может быть и куда копать?
Хм... Мыслей куда копать - пока нету. Но посмотреть - посмотрю. Тут ещё надо смотреть на python-скрипты, которые занимаются визуализацией переменных. Возможно, они что-то не так обрабатывают. Не исключаю, что вот здесь: http://forum.sources.ru/index.php?showtopic=337722&view=findpost&p=3084668 проблема из той же серии.
Про python-скрипты была первая мысль, пробовал отключать в настройках - так же падает. Происходит это кстати все под убунтой 10.04 с нативным gdb, в котором поддержка python есть.
Значит, надо будет покопаться в исходниках cpplibrary. Кстати, вопрос. А если for (a : cont) заменить на аналогичный родной, Qt'шный foreach(a, cont) - что будет?
Кстати, минут 5 назад обнаружил, что иногда падает даже в cpp-файлых, в которых никаких лямбд, auto и for нет, так что похоже проблема в чем-то другом. И похоже дело не python-скриптах, потому что там, где отладчик не падает - содержимое STL-контейнеров в watch показывается в нормально. Но разобраться все равно было бы интересно.
Ну, из под нового qtcreator gdb падает достаточно часто, чтобы проект невозможно было отлаживать. Т.е. в 80% кода. Посмотрел исходники - там какая-то печаль. Сообщение о том, что gdb crashed выскакивает из обработчика выхода из процесса gdb, т.е. по call stack поймать что вызвало такую реакцию не получится. Покопался немного на багтрекере - бага этого не нашел, но увидел, что некоторые прилагают логи gdb. Как их вытащить - пока не нашел, как найду - думаю все должно проясниться :)
Вместе мы сделаем QtC лучше. :) Судя по логам gitorous'а последнее время во взаимодействии QtC и отладчика было много фиксов, может какой-то из них и зааффектил таким странным образом...
Кстати, не знаю связано ли это с вашими коммитами, но при попытках отладки когда содержащего лямбды и range for qtcreator регулярно говорит, что gdb process crashed. Причем если при заходе в какую-то функцию он падает, то падает стабильно. Причем видно, что остановился на breakpoint, видно, что начал выводить local watch - и через мгновение crash. При этом gdb из консоли и qtcreator 2.4.0 отлаживает нормально. Ощущение, что идут какие-то дополнительные команды в gdb, которые его и роняют. Вы вроде по коду лазили, есть мысли из-за чего это может быть и куда копать?
ОтветитьУдалитьХм... Мыслей куда копать - пока нету. Но посмотреть - посмотрю. Тут ещё надо смотреть на python-скрипты, которые занимаются визуализацией переменных. Возможно, они что-то не так обрабатывают. Не исключаю, что вот здесь:
Удалитьhttp://forum.sources.ru/index.php?showtopic=337722&view=findpost&p=3084668
проблема из той же серии.
Про python-скрипты была первая мысль, пробовал отключать в настройках - так же падает. Происходит это кстати все под убунтой 10.04 с нативным gdb, в котором поддержка python есть.
УдалитьЗначит, надо будет покопаться в исходниках cpplibrary. Кстати, вопрос. А если for (a : cont) заменить на аналогичный родной, Qt'шный foreach(a, cont) - что будет?
УдалитьКстати, минут 5 назад обнаружил, что иногда падает даже в cpp-файлых, в которых никаких лямбд, auto и for нет, так что похоже проблема в чем-то другом. И похоже дело не python-скриптах, потому что там, где отладчик не падает - содержимое STL-контейнеров в watch показывается в нормально. Но разобраться все равно было бы интересно.
УдалитьУ меня cdb время от времени тупит, видимо, похожим образом (с поправкой на ветер).
УдалитьНу, из под нового qtcreator gdb падает достаточно часто, чтобы проект невозможно было отлаживать. Т.е. в 80% кода. Посмотрел исходники - там какая-то печаль. Сообщение о том, что gdb crashed выскакивает из обработчика выхода из процесса gdb, т.е. по call stack поймать что вызвало такую реакцию не получится. Покопался немного на багтрекере - бага этого не нашел, но увидел, что некоторые прилагают логи gdb. Как их вытащить - пока не нашел, как найду - думаю все должно проясниться :)
УдалитьВместе мы сделаем QtC лучше. :) Судя по логам gitorous'а последнее время во взаимодействии QtC и отладчика было много фиксов, может какой-то из них и зааффектил таким странным образом...
УдалитьЕще немного поковырялся, и открыл баг. Если интересно:
Удалитьhttps://bugreports.qt-project.org/browse/QTCREATORBUG-7003
Нда, информации в багрепорте не густо. :)
Удалить