世界を動かす技術を、日本語で。

新しい視点でRustプログラムを可視化し、デバッグする

概要

  • Terres はRustコミュニティの公式マスコット
  • Ferris の友達として登場
  • ヤドカリ がモチーフ
  • Rustacean ファミリーの一員
  • 親しみやすいキャラクター設定

Terresとは

  • Terres はRustコミュニティにおける公式マスコットキャラクター
  • Ferris の友達として紹介
  • ヤドカリ をモチーフにしたデザイン
  • Rustacean ファミリーの一員として位置付け
  • Rustユーザーに親しまれる存在

Hackerたちの意見

すごく印象的だね!試してみたいけど、RustのOSカーネルをqemuで動かしてるから、使えないみたい。

これはただのトレースビューワーだね。トレースの可視化が標準のトレースビューワーよりもずっと密度が低くて、実行時間に関する有意義な情報も提供してないみたい。chrome://tracingと比べてみて。https://www.chromium.org/developers/how-tos/trace-event-prof... トレースビジュアライザーが20年前にオリジナルのタイムトラベルデバッガーのために発明されたかは分からないけど、少なくとも20年前からタイムトラベルデバッグの可視化には使われてるよ。

確かに、ただのトレースビューワー以上のものだね。ページにも書いてある通り、タイムトラベルデバッガーなんだ。プログラムの実行中に異なる時間のスナップショット間を行き来できるのが面白い。コンパイル言語のRustだと、こういうことをするのはもっと高度なことなんだよね。

いいプロジェクトだね!次のhttps://Rust-Trends.comのニュースレターで紹介するよ。

クールだね、ちょっとGlamorous Toolkit [1]を思い出す。これも最近知ったプロジェクトだよ。試してみるのが楽しみ!こういう「プログラムが動いてる間に説明する」タイプのツールが大好きなんだ。1. https://gtoolkit.com/

今すぐこれを使いたいけど、2つの問題があるんだ:- インターネットからのBashスクリプトがsudoを要求してて、無理だわ - VSCodeのプラグイン?VSCodeは使ってないんだ。Zedからは移行しないよ(Rust開発のためにRustで作られてるから)。助けて、どうやってこれを試せる?

「インターネット」の境界がどこから始まるかによるけど、リポジトリをクローンしてinstall.shを実行すればいいよ。ただ、これは本当に怠け者向けだと思う。結局、GitHubのリリースアーティファクトをダウンロードするだけだからね。 https://github.com/SeaQL/FireDBG.for.Rust/blob/1.81.0/instal... VSCodeが必要だとは思わないし、CLIの使い方に専用のセクションもあるよ。 https://github.com/SeaQL/FireDBG.for.Rust#firedbg-command-li... それに「firedbg open」もファイルのグロビング用の便利なメソッドみたいだし。 https://github.com/SeaQL/FireDBG.for.Rust/blob/1.81.0/comman... ただ、そのリポジトリに.tsファイルやpackage.jsonがないのはちょっと怪しいよね。これがあれば(a)拡張機能が何をするのか(b)自分で.vsixをビルドできるのに。

彼らは、試すための簡単な方法を提供しようとしてるだけだし、Firefoxからのunsafeコードはブランドにとってめちゃくちゃ危険だよ。もちろん、ちょっと時間を取ってbashスクリプトをダウンロードして中身を確認すれば、GitHubからリポジトリをダウンロードしてビルドするのと大して変わらないんだけどね。一般的には、確かに、適当なプログラムを実行したくはないよね。

これはすごくいいね。ユーザーインターフェースも優れてる。使ってるPythontutorを思い出したよ。

デバッガーの視点から見ると、Rustはただのネイティブコード言語に過ぎないよ。DWARFはスタックを取得したり、変数を見つけたり、メモリの塊をデータ構造として解釈する方法を教えてくれる。Rust専用のデバッガーを売り込もうとしてる人は、ただの流行に乗ろうとしてるか、単に騙そうとしてるだけだよ。

関連情報: DWARFを共有リバースエンジニアリングフォーマットとして - https://news.ycombinator.com/item?id=44113026 - 2025年5月(コメント数: 17)

ソースのインストゥルメンテーションに依存しているようだから、言語特有のものだね。

Hacker Newsで議論の続きを見る