1. バグ
プログラマーには独自のスラングがありますが、多くの人はそれを専門用語だと考えています。いずれにせよ、それを知ることを避けることはできません。細部まで掘り下げる必要があります。それでは、飛び込んでみましょう。
あなたが最初に知ることになる言葉の 1 つは「バグ」、つまり昆虫です。ソフトウェア開発の文脈では、この言葉はプログラム内のエラー、つまりプログラムが何か間違っているか、まったく正しくないことを行うインスタンスを意味します。あるいは単に奇妙な動作をしているだけです。
しかし、プログラマーが、そのプログラムが、その奇妙な動作にもかかわらず、期待どおりの動作をしていると考える場合、通常、「それはバグではなく、機能です」などと宣言します。それが大量のインターネットミームを生み出しました。
一般に、ソフトウェアの欠陥には、プログラムのロジックのエラー、タイプミス、不正なプログラム アーキテクチャから、コンパイラの問題に至るまで、さまざまな理由が考えられます。いずれにせよ、プログラマーは、プログラム内の実際のバグとその他の「欠点」の両方を修正する必要があります。
「バグ」という言葉の歴史
「バグ」という言葉の起源の最も一般的なバージョンは、伝説のようなものです。
1945 年 9 月、ハーバード大学の科学者は最初のコンピューターの 1 つである Mark II をテストしていました。コンピューターは正常に動作しておらず、すべての基板を検査している過程で、電気機械式リレーの接点の間に蛾が挟まっているのを発見しました。
抽出された昆虫は技術ログにテープで記録され、「初めて実際に発見された昆虫の事例」という記述が添えられていました。
この面白い話は、エラーを意味する「バグ」という言葉が使われるようになったと考えられており、「デバッグ」という言葉はバグを排除することと同義語になりました。
2. プログラムのデバッグ
プログラムのバグを修正するために、プログラマはデバッガと呼ばれる特別なプログラムを使用します。これらのプログラムの中には、マシンコードをデバッグする方法を知っているものもあります。
Java プログラマーは、プログラムのデバッグに IDE を使用します。IntelliJ IDEA、Eclipse、NetBeans など。IntelliJ IDEA は最も強力な IDE であるため、これを例として使用してデバッグ プロセスを説明します。
IntelliJ IDEA は、プログラムを 2 つのモードで実行できます。
実行モード | ツールバーアイコン | ホットキー |
---|---|---|
通常の実行 | Shift +F10 |
|
デバッグモードで開始する | Shift +F9 |
プログラムが開始、実行、終了する通常の実行についてはすでに慣れています。しかし、デバッグ モードには、たくさんの驚きが用意されています。
デバッグモード
デバッグ モードでは、プログラム全体を段階的に実行できます。より正確には、行ごとに移動できます。さらに、プログラムの各ステップ (コードの各行が実行された後) で変数の値を観察できます。そして、その値を変更することもできます。
プログラムのデバッグを最低限でも理解するには、次の 3 つのことを学ぶ必要があります。
- ブレークポイント
- ステップバイステップの実行
- 変数の値を検査する
3.ブレークポイント
IDE を使用すると、コード内にブレークポイントと呼ばれる特別なマーカーを配置できます。デバッグ モードで実行中のプログラムがブレークポイントでマークされた行に到達するたびに、実行は一時停止します。
特定の行にブレークポイントを設定するには、IDEA でその行の左側をクリックするだけです。例:
この行にはブレークポイントがマークされ、IntelliJ IDEA はその行を赤色で強調表示します。
コードの左側のペインをマウスで 2 回クリックすると、ブレークポイントが削除されます。
ホットキー+の組み合わせを使用するだけで、ブレークポイントを現在の行に配置することもできます。すでにブレークポイントがある行でもう一度+を押すと、ブレークポイントが削除されます。Ctrl
F8
Ctrl
F8
4. デバッグモードでプログラムを開始します。
Shift
プログラムに少なくとも 1 つのブレークポイントがある場合は、 +を押すF9
か「バグ アイコン」をクリックすることでプログラムをデバッグ モードで実行できます。
デバッグ モードで起動した後、プログラムは通常どおり実行されます。ただし、ブレークポイントでマークされたコード行に到達するとすぐに一時停止します。例:
スクリーンショットの上半分には、2 つのブレークポイントを持つプログラム コードが表示されます。プログラムの実行は、青い線でマークされた 5 行目で停止しました。5 行目はまだ実行されていません。コンソールにはまだ何も出力されていません。
画面の下半分には、デバッグ ペイン (デバッガペイン、コンソール ペイン、およびデバッグ モード用の一連のボタン) が表示されます。
左下のペインにある[プログラムの再開]ボタンを押すと (または を押します)、プログラムの一時停止を解除する (つまり、実行を継続するF9
) ことができます。
このボタン (または ) を押すとF9
、プログラムは次のブレークポイントに到達するか終了するまで実行を続けます。ボタンをクリックした後に表示される内容は次のとおりです。
プログラムは 2 番目のブレークポイントで停止し、コンソールに とHello
という単語が表示されます。and
これは、画面に出力を表示する 3 行のうち 2 行だけを実行したことを示しています。
5. ステップバイステップの実行
プログラムがデバッグ モードで実行されている場合は、ステップ実行することもできます。1ステップは1 行です。ステップバイステップの実行には 2 つのホットキーがあります:F7
とF8
: それぞれ、コードの現在の行が実行されます。ただし、その前に、ブレークポイントを使用してプログラムを停止する必要があります。
プログラムを 1 行ずつ実行したい場合は、メソッドの先頭にブレークポイントmain()
を設定し、デバッグ モードで実行する必要があります。
プログラムが停止したら、1 行ずつ実行を開始できます。キーを 1 回押すとF8
1 行が実行されます。
プログラムが停止してキーを 1 回押すと、次のようになりますF8
。
main メソッドの 1 行目はすでに実行されており、現在の行は 2 行目です。スクリーンショットの下部には、単語がHello
すでに画面上に表示されていることがわかります。
6. メソッドへのステップインによるステップバイステップの実行
F7
プログラム内に独自のメソッドを記述しており、デバッグ モードでメソッド内で実行する場合、つまり「メソッドにステップ インする」場合は、ではなくを押す必要がありますF8
。
プログラムをステップ実行し、4 行目で停止したとします。 を押すとF8
、IDEA は 4 行目を実行し、5 行目に進みます。
ただし、 を押すとF7
、IDEA がメソッドにステップインしますmain2()
。
とてもシンプルです。メソッド内で何が起こるか、どのように起こるかが特に気にならない場合は、 を押しますF8
。重要な場合は、 を押して、F7
すべてのコードをステップ実行してください。
GO TO FULL VERSION