FireDBGとは
FireDBGはRustのデバッグをサポートする「タイムトラベルビジュアルデバッガー」です。
SeaORMやSeaQLを開発しているSeaQL.orgのFireDBGチームが開発しています。
FireDBGを使用すると、どの関数からどの関数が呼ばれたのかの情報や、関数の入力値や出力値、ある時点での変数の値などを可視化してくれます。また、「タイムトラベル」とあるように、FireDBGのシークバーを動かすことでプログラムのフローを遡りながらその時の状態を確認することができます。デバッグが捗るツールです。
FireDBG実行例↓
この記事ではFireDBGを動作させるまでの手順について解説します。
動作確認環境
以下の環境で動作確認しました。
- M1 Max MacBook Pro
- macOS Sonoma 14.2.1
- Rust 1.74.1
- VS Code 1.85.1
FireDBG導入手順
0. 前提条件
FireDBGを使用するには、以下のツールがインストールされている必要があります。
- VS Code >= 1.80.0
- Rust >= 1.74.0
1. FireDBG CLIツールのインストール
まずFireDBGのCLIツールをインストールします。
FireDBGのInstallページにあるスクリプトを実行します。
curl https://raw.githubusercontent.com/SeaQL/FireDBG.for.Rust/main/install.sh -sSf | sh
インストールが完了したら firedbg
コマンドが使えるようになります。
firedbg --version
#=> firedbg-cli 1.74.2
2. FireDBGのVS Code拡張機能をインストール
続いて、FireDBGのVS Code拡張機能をインストールします。
準備はこれだけです。
3. FireDBGの実行
早速FireDBGを実行してみましょう。適当なRustプロジェクトをVS Codeで開き、VS CodeのターミナルからFireDBGを実行します。
# firedbg 実行
firedbg run
すると、プロジェクトルートに firedbg
というディレクトリが自動的に作成され、その中に firedbg
の解析結果ファイルが生成されます。
続いて、VS CodeのFireDBG拡張機能を使って解析結果のファイルを開きます。
# firedbg VS Code拡張機能で解析ファイルを開く
firedbg open
するとVS CodeでFireDBGのCall Tree画面が表示されます。
これは見やすい!!!
Call Tree画面で、関数名の横にある「○」をクリックすると、その関数の引数と戻り値が確認できます。
また、関数名をクリックすると該当のコードを表示してくれます。
基本的な使い方はこれだけです。あとは様々なRustプロジェクトで試してみてください!
4. (optional) .gitignoreにfiredbgディレクトリを追加
プロジェクトルートに firedbg
というディレクトリが自動生成されるので、そちらはバージョン管理ツールから除外しておくとよいです。Gitなら.gitignoreですね。
+ # firedbgの生成ファイル
+ firedbg
補足
- FireDBGが一般公開されてまだ10日程の状態でこの記事を書いています
- 絶賛開発中とのことなのでこの記事の情報はすぐに古くなるかもしれません
- ぜひ各リンク先から最新の情報をご確認ください
- 2023/12/22現在ではまだMVP的な感じとのことなので、分析できないプロジェクトもあるかもしれません
- 非同期Rustの対応はこれからとのことです
- FireDBGのデフォルトでは関数の引数や戻り値のみ確認できますが、プロジェクトに
firedbg-lib
crateを導入すると、指定の場所の変数なども確認できるようになります。こちらもご興味があればご参照ください。
感想
FireDBG超便利!!!
参考URL