デバッガーとは

完了

あなたの開発者としてのキャリアを積む中で、最後は自分自身に次のことを問いかける "その" 瞬間が常にあります。

コードが動作しないのはなぜか

このような自問は開発者にとって日常茶飯事です。 その "こつ" は、時間とフラストレーションを最小限に抑えてバグを見つけ、修正する作業に慣れることです。 プログラムにバグがあったときに、大抵は誰もがこの問題に対処するための独自の方法を持っています。

次のデバッグ方法のうち、おそらく 1 つ以上は既に試しているでしょう。

  • プログラムは動作 "するはず" なので、もう一度実行してみる。
  • ラバーダックに問題を説明する。
  • コードをもう一度読んで問題を見つける。
  • 外に出て散歩する。
  • コード内のいくつかの Console.WriteLine("here") メッセージをばらまきます。

これらの方法で達成できる成功のレベルはさまざまです。 成功することが多いと一般的に考えられているアプローチの 1 つは、デバッガーの使用です。 しかし、デバッガーとは一体何でしょうか。

デバッガーは、分析的アプローチでプログラムの実行フローを監視および制御するために使用されるソフトウェア ツールです。 その設計目標は、バグの根本的な原因を見つけ、その解決を支援することです。 これは、独自の実行プロセスでプログラムをホストするか、.NET のように、実行中のプログラムにアタッチされている別のプロセスとして実行することで機能します。

デバッガーにはさまざまな種類があります。 コマンド ラインから直接動作するものもあれば、グラフィカル ユーザー インターフェイスを備えているものもあります。 このモジュールでは、Visual Studio Code に統合されたグラフィカル デバッガーを使います。

デバッガーを使用する理由

デバッガーを使用してコードを実行していない場合は、プログラム内で何が起こっているかをおそらく "推測" することになります。 デバッガーを使用する主な利点は、プログラムの実行を "ウォッチ" できることです。 プログラムの実行を、一度に 1 コード行ずつ追跡できます。 このようにして、誤った推測の可能性を回避できます。

すべてのデバッガーには独自の機能セットがあります。 それらのほとんどすべてに付属する最も重要な機能は次の 2 つです。

  • プログラム実行の制御:プログラムを一時停止し、ステップ バイ ステップで実行すると、実行されているコードと、それがプログラムの状態にどのように影響するかを確認できます。
  • プログラムの状態の監視:たとえば、コード実行中の任意のポイントで変数と関数のパラメーターの値を確認できます。

デバッガーの使用法の習得は、開発者にとって重要なスキルですが、見過ごされがちです。 これにより、コード内のバグをいっそう探しやすくなり、プログラムの動作を簡単に理解できるようになります。

これについては次のユニットで取り上げます。