Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Проблемы с debug в QtCreator


Автор: spyswamp 2.11.2011, 12:03
У меня установлена ОС Windows 7, QtCreator 2.3.0 (based on Qt 4.7.4 32 bit). Поставилось все это вместе с QtSDK-win. Проблема проявляется в том, что в дебаге не могу смотреть значения переменных-"коллекций". Например, QHash, QVector и других подобных структур. Выдается сообщение "unavailable synchronous data".

Гуглил, даже в jira разработчиков сказано, что такое должно быть исправлено. Gdb, судя по всему, последней версии (если верить components.xml) - 7.2.0-4.

Дома на Ubuntu 10.04.3 LTS + QtCreator 1.3.1 (based on Qt 4.6.2) все показывается идеально.

Кто может подсказать, в чем дело?

Автор: spyswamp 3.11.2011, 09:10
Последние данные такие: создал парочку новых проектов Qt Gui Application. Попробовал там посоздовать QVector, QHash - все отлично показывает в дебаггере. Сравнил *.pro - особых отличий нет, в моем проекте только добавлены секции INCLUDEPATH, RESOURCES, OTHER_FILES. Но не думаю, что это как-то влияет. Расположение build directory на том же уровне, что и дира с проектом результатов тоже не дало.

Автор: math64 3.11.2011, 13:38
Сравни не .pro, а .pro.user

Автор: spyswamp 4.11.2011, 13:00
math64, тоже сравнивал, сразу после *.pro. Различия только в названии проекта.

Автор: loneybibi 6.11.2011, 22:29
Вот так вот пробовал QHash:
Код

    QHash <int, QString> hash;
    hash.insert(1,"one");
    hash.insert(2,"two");
    qDebug()<<hash.value(1);
    qDebug()<<hash.value(2);

На версиях 4.6.2 , 4.7.4 на ОС Ubuntu 10.04.3 x86, x64 и Window XP-7 x86, x64.
Все работает нормально, QVector тоже нормально выводит значения в QDebug.
Попробуй пересобрать или переустановить Qt.

Автор: spyswamp 7.11.2011, 09:48
loneybibi, так естественно все прекрасно работает. Я в IDE не вижу значений коллекций. Игра с флагами в попап меню тоже результатов не дала.

Автор: bsa 8.11.2011, 10:13
Тогда смотри, что за профиль Qt у тебя используется. Имеются ли для него дамперы (в настройках профиля Qt). Проверь сборку в настройках проекта, она должна быть отладочной.
Кстати, запусти обновлятель (Updater) из раздела Справка. Последняя версия 2.3.1. В ней у меня все работает.

Автор: spyswamp 8.11.2011, 11:58
Обновился до 2.3.1. Ничего не поменялось.

1. Проект А

Имеем следующий код:
Код

QVector<int> vec;
vec.append(1);
vec.append(2);
vec.append(3)


Лог дебаггера, при разворачивании в Locals and Expressions переменной vec:
Цитата

33bb options:fancy,autoderef,partial vars:local.vec expanded:local.vec typeformats: formats: watchers:
>&"bb options:fancy,autoderef,partial vars:local.vec expanded:local.vec typeformats: formats: watchers:\n"
>~"data=[{iname=\"local.vec\",addr=\"0x28fd94\",name=\"vec\",addr=\"0x28fd94\",numchild=\"3\",type=\"QVector\",value=\"<3 items>\",},,],typeinfo=[]\n"
>33^done
dENDLESS LOOP: SOMETHING NEEDED: {iname="local.vec",sortId="0",name="vec",addr="0x28fd94",exp="vec",value="<3 items>",type="QVector",hasChildren="true",children=<needed>}
 <Rebuild Watchmodel 2>
sFinished retrieving data


В окне имеем для vec: unavailable synchronous data.

2. Проект Б

Код тот же самый, лог дебаггера (тот же комп, тот же криэйтор, все то же):
Цитата

34bb options:fancy,autoderef,partial vars:local.vec expanded:local.vec typeformats: formats: watchers:
>&"bb options:fancy,autoderef,partial vars:local.vec expanded:local.vec typeformats: formats: watchers:\n"
>~"data=[{iname=\"local.vec\",addr=\"0x28fc78\",name=\"vec\",addr=\"0x28fc78\",numchild=\"3\",size=\"3\",addrbase=\"0x20821b8\",addrstep=\"4\",childtype=\"int\",childnumchild=\"0\",children=[{addr=\"0x20821b8\",value=\"1\",},{addr=\"0x20821bc\",value=\"2\",},{addr=\"0x20821c0\",value=\"3\",},],type=\"QVector<int>\",value=\"<3 items>\",},,],typeinfo=[]\n"
>34^done
 <Rebuild Watchmodel 2>
sFinished retrieving data


Как видно, чилдрены нормально резолвятся и выводятся в окошке. Видно все элементы, все в порядке.

--
Настройки проектов идентичны.

Закладка Projects:

Qt version: Qt 4.7.4 for Desktop - MinGW 4.4 (Qt SDK)
Tool chain: MinGW runtime (Provided with Qt Creator)

Далее Tools > Options > Tool chains > MinGW runtime (Provided with Qt Creator)

Compiler path: .../QtCreator2.3.1/mingw/bin/gcc.exe
ABI: x86-windows-msys-pe-32bit
Debugger: .../QtCreator2.3.1/pythongdb/gdb-i686-pc-mingw32.exe

*.pro.user отличаются только путями, названиями проектов и кодеком для сорцов.

Такая петрушка.

Автор: bsa 8.11.2011, 12:22
Выкладывай содержимое pro файла, а так же минимальный набор исходников, воспроизводящий проблему.

Автор: spyswamp 8.11.2011, 12:24
bsa, проект немаленький, поэтому попозже выдеру предполагаемый минимум.

Автор: spyswamp 8.11.2011, 14:06
bsa, коцал я, коцал проект, чтобы выложить, да и починил дебаг. Проблема оказалась из-за связи с GNU Prof'ом. Убрал ее, почистил все вручную, пересобрал - GDB полегчало.

Автор: bsa 8.11.2011, 14:30
spyswamp, кстати, можешь эту информацию выложить в описание бага, который "давно уже висит".  smile 
Может после этого быстрее пофиксят.

Автор: spyswamp 8.11.2011, 16:54
bsa, а дай, пожалуйста, прямую ссылку на него.

Автор: bsa 8.11.2011, 17:31
spyswamp, это ты в соседнем топике сказал, что баг этот есть и висит давно. Поэтому тебе виднее.

Автор: spyswamp 8.11.2011, 18:52
bsa, а, понял. Че-то совсем заработался сегодня, подумал, что ты нашел какой-то свежак. smile Напишу им в jira на днях.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)