ニュース

「Rust」言語向けの“ビジュアルタイムトラベルデバッガー”「FireDBG」が公開

関数の呼び出しを「コールツリー」として可視化、自由に時間を移動してエラーを特定

「Visual Studio Code」向けの拡張機能も用意

 「Rust」言語向けのビジュアルデバッガー「FireDBG」が、11月24日にリリースされた。「GitHub」でホストされているオープンソースプロジェクトで、ライセンスは「Apache License, Version 2.0」または「MIT license」。「Visual Studio Code」向けの拡張機能も用意されており、無償でダウンロード可能だ。

 「FireDBG」は、「Rust」言語で「タイムトラベルデバッグ」を実現するビジュアルデバッガー。従来のデバッガーはエラーを引き起こしたと思しき部分で処理を中断し、逐次実行で時を前に進めるしかなかったが、「FireDBG」ならばプログラムの実行中に起こったことを記録し、それがなぜ起こったのかを理解するために時間を自由にナビゲートできるのが利点だ。

 「FireDBG」は関数の呼び出しを「コールツリー」として可視化する。たとえば関数Aが関数Bを呼び出せば、関数Bが関数Aの子ノードとなる。関数の制御がAに戻れば親ノードへ帰り、後続の関数呼び出しは兄弟ノードとして表される。

関数の呼び出しを「コールツリー」として可視化

 「Rust」には例外がなく、エラーが発生してパニックに陥るとコンテキストが失われてしまうという欠点があるが、「FireDBG」はすべての関数の戻り値をキャプチャーするため、エラーの発生元と伝播経路を特定できる。バイナリデータとしてシリアル化されたRust値を表現できる型システムも備えており、データ構造の視覚化も行える。

データ構造の視覚化も行える

 この仕組みは他のプログラミング言語でも応用可能とみられており、「C++」や「Swift」、「Go」、「node.js」、「Python」などへの対応も考えられているようだ。今後の展開に期待したい。

 「FireDBG」は「Rust」v1.74.0およびそれ以降、「Visual Studio Code」v1.80.0およびそれ以降で利用可能。以下のスクリプトを実行し(Windowsの場合は「WSL 2」の「Ubuntu」がおすすめ)、「Visual Studio Code」拡張機能をインストールすればよい。

curl https://raw.githubusercontent.com/SeaQL/FireDBG.for.Rust/main/install.sh -sSf | sh

ソフトウェア情報

「FireDBG」「Visual Studio Code」向け拡張機能
【著作権者】
SeaQL
【対応OS】
(編集部にてWindows 11で動作確認)
【ソフト種別】
フリーソフト
【バージョン】
1.74.2(23/12/14)