2016-04-05 4 views
0

Я встроенный программист С (не C++), пытаясь самостоятельно научиться создавать более простые простые графические интерфейсы для производства. Я Google Googled и не могу найти ответ, но может просто формулировать свой поиск неправильно.Отладка пользовательского виджета

Я создал пользовательский виджет, и когда я получаю доступ к нему из создателя Qt во время отладки моего приложения, отладчик действительно входит в исходный код для виджета.

Однако, однажды в исходном коде для виджета, он прыгает вокруг, начиная с первой строки кода, а затем прыгает вверх в строки локальных переменных, когда я нажимаю F10 и, в конце концов, снова спускаюсь в код как Я продолжаю ударять F10. Иногда некоторые из переменных отображают <Optimised out>, а не значение, которое они фактически удерживают.

Я попытался сделать отладку для виджета, но это не имеет никакого значения.

Действительно ли можно отлаживать виджеты следующим образом? Я часами занимаюсь кругами по кругу и должен придумать лучший способ понять, почему программа разбивается в определенной части пользовательского виджета.

+0

звучит так, будто вы пытаетесь отладить исполняемый файл выпуска. У вас есть правильный набор настроек? –

+0

Да, можно отлаживать пользовательский виджет. Это ничем не отличается от любого другого кода. Можно ли представить пример поведения, которое вы видите? –

+0

@NicolasHolthaus, нет, я совсем не уверен. Мое приложение находится в режиме отладки. Виджет, который я перекомпилировал, как я изначально описывал выше, но, по-видимому, был отредактирован по какой-то причине, выполнив «make debug install», но это не помогло. Если вы сможете точно описать, как этого добиться, я был бы очень благодарен. – DiBosco

ответ

2

Решено. У меня был момент ясности этим утром, когда я вернулся к нему. Я полностью забыл о необходимости ссылаться на библиотеку в файле .pro. Таким образом, даже если я скопировал библиотеку отладки:

/usr/lib64/qt5/plugins/designer/libcutescreenwidgetplugin.so 

Проблема заключалась в том, что файл проекта был:

LIBS += pathtosoucecode/build-CuteScreenWidgetPlugin-Desktop_9516b5-Release/libcutescreenwidgetplugin.so 

После того, как я изменил эту ссылку в библиотеку отладки всю информацию об отладке и одного -ступят отлично.

Это теперь мне пришло в голову, что, может быть, я должен действительно иметь:

LIBS += /usr/lib64/qt5/plugins/designer/libcutescreenwidgetplugin.so 

В моем файле проекта, так что после установки версии отладки он будет автоматически использовать это вместо этого. Возможно, это одна из тех вещей, которые вы ошибаетесь, когда у вас есть возможность учиться с такой сложной системой, как Qt.

Смежные вопросы