LoginSignup
7
6

Rustのタイムトラベルビジュアルデバッガー「FireDBG」を触ってみた

Posted at

FireDBGとは

FireDBGはRustのデバッグをサポートする「タイムトラベルビジュアルデバッガー」です。

SeaORMやSeaQLを開発しているSeaQL.orgのFireDBGチームが開発しています。

FireDBGを使用すると、どの関数からどの関数が呼ばれたのかの情報や、関数の入力値や出力値、ある時点での変数の値などを可視化してくれます。また、「タイムトラベル」とあるように、FireDBGのシークバーを動かすことでプログラムのフローを遡りながらその時の状態を確認することができます。デバッグが捗るツールです。

FireDBG実行例↓

スクリーンショット 2023-12-22 18.23.14.png

この記事では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拡張機能をインストールします。

スクリーンショット 2023-12-22 18.41.39.png

準備はこれだけです。

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画面が表示されます。

スクリーンショット 2023-12-22 18.22.56.png

これは見やすい!!!

Call Tree画面で、関数名の横にある「○」をクリックすると、その関数の引数と戻り値が確認できます。

また、関数名をクリックすると該当のコードを表示してくれます。

基本的な使い方はこれだけです。あとは様々なRustプロジェクトで試してみてください!

4. (optional) .gitignoreにfiredbgディレクトリを追加

プロジェクトルートに firedbg というディレクトリが自動生成されるので、そちらはバージョン管理ツールから除外しておくとよいです。Gitなら.gitignoreですね。

.gitignore
+ # firedbgの生成ファイル
+ firedbg

補足

  • FireDBGが一般公開されてまだ10日程の状態でこの記事を書いています
    • 絶賛開発中とのことなのでこの記事の情報はすぐに古くなるかもしれません
    • ぜひ各リンク先から最新の情報をご確認ください
  • 2023/12/22現在ではまだMVP的な感じとのことなので、分析できないプロジェクトもあるかもしれません
    • 非同期Rustの対応はこれからとのことです
  • FireDBGのデフォルトでは関数の引数や戻り値のみ確認できますが、プロジェクトに firedbg-lib crateを導入すると、指定の場所の変数なども確認できるようになります。こちらもご興味があればご参照ください。

感想

FireDBG超便利!!!

参考URL

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6