воскресенье, 1 ноября 2009 г.

Отладка плагинов под Windows

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

Для отладки нужен CDB, его надо установить с сайта Майкрософт: MS Debugging Tools for Windows 32-bit.

Для отладки плагина, нужно немного:
1. Пересобрать Qt под VC++ и сделать ее дефолтной в Qt Creator.
2. Пересобрать Qt Creator для отладки.
3. Начать отлаживать плагин.

Шаг 1 описан здесь. UPD А исправления с решением проблемы, речь о которой ниже- здесь.

Шаг 2. Исходный код Qt Creator 1.3.0 beta можно скачать из репозитория: архив.

Сборку можно делать прямо из Qt Creator, достаточно открыть проект qtcreator.pro. В меню Build -> Set Build Configuration выбрать Debug. В меню Build -> Set Run Configuration указать qtcreator (app). Также во вкладке Project проверить: Active Run Configuration = app, Build Configuration for qtcreator = Debug, и параметры для них. Осталось только сделать Build -> Build Project (qtcreator) (Ctrl+B). Сборка на моей машине заняла 45 минут.

Шаг 3 ничего сложного из себя не представляет. Заходим в папку src/plugins, находим нужный, открываем его исходник, ставим breakpoint... После этого делаем Debug -> Start Debugging -> Start Debugging (F5).

Единственная неприятность- это то, что у меня почему-то не находится драйвер QSQLITE:

QSqlDatabase: QSQLITE driver not loaded
QSqlDatabase: available drivers:
Warning: Failed to open settings database at "C:/Documents and Settings/qtcreatorgeek/Application Data/Nokia/QtCreator.db" ("Driver not loaded")
QSqlDatabase: QSQLITE driver not loaded
QSqlDatabase: available drivers:
Could not initialize help engine: "Cannot load sqlite database driver!"
QSqlDatabase: QSQLITE driver not loaded
QSqlDatabase: available drivers:
QSqlDatabase: QSQLITE driver not loaded
QSqlDatabase: available drivers:
QSqlDatabase: QSQLITE driver not loaded
QSqlDatabase: available drivers:
Could not initialize help engine: "Cannot load sqlite database driver!"
QSqlDatabase: QSQLITE driver not loaded
...

Не знаю, с чем это связано. Копирование sqldrivers\qsqlite4.dll в \bin ничего не дало.

2 комментария:

  1. >>Копирование sqldrivers\qsqlite4.dll в \bin ничего не дало.

    Думаю, при дебаге необходимо в \bin копировать
    sqldrivers\qsqlited4.dll (Внимание на qsqlited4)

    ОтветитьУдалить
  2. Да, для дебага, надо использовать дебаг-версии библиотек (которые file_named.dll). В случае qsqlite4.dll это будет qsqlite4d.dll.

    Это, правда, тоже не помогло. Вылечилось конфигурацией Qt с ключом -qt-sql-sqlite. См. http://qtcreatorgeek.blogspot.com/2009/11/qsqlite-driver-not-loaded.html
    и комменты к нему.

    ОтветитьУдалить