C#:
デバッガーの使い方
方法:
想像してみてください、あなたには正しく動作していない小さなプログラムがあります:
static void Main()
{
int result = Sum(1, 2);
Console.WriteLine(result);
}
static int Sum(int a, int b)
{
return a + a; // おっと、ここはa + bであるべきです
}
Visual Studioのデバッガーを使用して、return a + a;
の隣にある左マージンをクリックしてブレークポイントを設定します。プログラムを実行するとき(F5キーで)、実行はそこで一時停止します。変数の上にマウスカーソルを置いて値を調べるか、または即時ウィンドウを使用して式を評価してみてください。a
が1で、b
が2であることがわかりますが、a + a
は期待した合計ではありません。それをa + b
に変えて、実行を続ける(F5キー)、そして、ほら、コンソールが3を出力します。
ディープダイブ
デバッグの歴史は1940年代まで遡り、初期のコンピューターで本物のバグ(蛾)が発見されたときに始まります。今日のデバッガー、Visual Studioのものと同様、ブレークポイント、ステップバイステップ実行、ウォッチウィンドウなど、強力な機能のスイートを提供します。
Visual Studioのデバッガーに代わるオプションには、Cスタイルの言語用のGDBやPython用のpdbなどのオープンソースオプション、またC#および他の言語のデバッグツールを提供するクロスプラットフォームIDEであるJetBrains RiderやVS Codeが含まれます。
デバッガーの実装に深く飛び込むとき、あなたが見るのは、アプリケーションのプロセスにアタッチするプログラムです。それは機械語を解釈し、メモリ状態を管理し、実行フローを制御します。これは、効果的なデバッグのためには欠かせない重要なものであり、デバッグモードがリリースモードよりも遅く動作する理由でもあります。これらのフックが存在しないからです。