kritaをQt Creatorを使ってデバッグできるようにしてみた


前回のkritaのビルドに引き続き、今回はデバッグできるようにQt Creator という統合開発環境を使って環境を整えてみました。

ですが、設定方法や動かし方でよく理解できていないところがちらほらあります😖
個人的に動かしてみるぶんには許容できそうかな。


Qt Cteatorをインストールする


Qt Creator をインストールします。Qt Creatorの公式サイトにインストーラーがあるので、特に理由がなければそちらを使ってインストールするのが良さそうです。私は下記のようにコマンドでインストールしたのですが、付属のサンプルプログラムが見れませんでした。

# dnf install qtcreator

ソースコードをQt Creatorのプロジェクトとして開く

Qt Creatorを起動して、メニューからFile>Open File or Projectとたどってkritaのプロジェクトを開きます。

前回のビルドで、gitからkritaのソースコードをダウンロードしました。kritaというディレクトリです。その中にCMakeLists.txtがあります。

このファイルを開くと、kritaディレクトリの内容をプロジェクトとして開くことができます。

krita/
├── 3rdparty
├── AUTHORS
├── CMakeLists.txt
├── CMakeLists.txt.user
├── CODE_OF_CONDUCT.md
├── COPYING
├── COPYING-CMAKE-SCRIPTS



プロジェクトを開くとcmakeが実行されるので暫く待ちます。
私の場合は前回のビルドで必要なライブラリは全てインストールしているので、特にエラーなどは出てこずに終了しました。


Kitsを設定する

Qt Creatorでビルドを行う前に、ビルドする際に利用するQtのバージョンやコンパイラ、デバッガ等をグループ化して登録しておきます。

Qt CreatorのメニューでTools>Optionsとたどり、左側のアイコンからKitsを選択します。
Kitsのタブを見ると、(ちょっと記憶が曖昧なんですが😓)おそらく自動で登録されたキットが幾つかあると思うので、内容がそれでいいか確認しておきます。

特に登録されているグループがなければ、Addで新しいキットを追加して必要なツールを設定します。




Buildの設定をする

Qt Creatorの左側に並んでいるアイコンのProjectsを選択して、ビルドの設定をします。


Build&Runの項目に、先程Kitsのタブで登録したものが表示されているので、使用するキットの下に表示されている"Build"を選択します。
Build Settingsが表示されるので各項目を設定していきます。



赤で囲ったところに表示されている変数は、cmakeの設定になります。 それぞれ何を指定できるのかはコントリビューターマニュアルのCMake Settings for Developersを参照します。

私はとりあえず以下のように設定しました。


edit build configrationDebug
CMakeBuild directoryビルド用のディレクトリのパス
CMAKE_BUILD_TYPEDebug
CMAKE_INSTALL_PREFIXインストール用のディレクトリのパス
KRITA_DEVSON
Build Steps

Runの設定をする

Build&Runの項目で、Runを選択します。
Add build stepのボタンからカスタムプロセスステップを追加して、make installしたkritaを実行するように指定しました。



ビルドとデバッグ実行


左側に並んでいるアイコンで、一番下にある金槌のアイコン(Build Project krita)をクリックしてビルドします。
compile outputの窓に、ビルドの状況が出力されます。


ビルドが完了したら、金槌のアイコンの上にある虫が付いた再生ボタンのアイコン(Start Debugging)をクリックして実行します。

kritaが起動したら、ウインドウタイトルに自分がビルドしたソースのコミット番号が表示されているので、間違いがないか確認します。

メニューバーからDebug>Start Debugging>Attach to Running Applicationと辿り、先程起動したkritaを選択します。これでブレークポイントを設定すれば、そこで止まるようになります。

(アタッチしないと止まらなくて、この辺りがよくわからなかった😣)

参考

Use Qt Creator as an IDE or debugger UI