私がJavaこのようなコードを持っていると仮定します(例としてのみ):
public void someMethod(){
int a = 3;
int b = 2; // <-- stay debug here
a = b + 2;
System.out.prinln(a);
}
「int a = b + 2;」行の実行をスキップすることができます。すぐに「System.out.prinln(a);」に移動しますか?
追伸Intellij Idea 12を使用しています。
デバッガでは、コードの一部を実行しないようにすることはできません。
ただし、追加のコードを実行して変数の値を変更することは可能であるため、デバッグ中に1行を実行から除外する必要がある場合は、コードを変更してその種類のデバッグの準備をする必要があります。
public void someMethod() {
int a = 3;
int b = 2;
boolean shouldRun = true;
if (shouldRun) {
a = b + 2;
}
System.out.prinln(a);
}
次に、実行を停止せずにshouldRunの値を変更するブレークポイントを設定します。このようにできます。
ご了承ください
ホットスワッピングを使用する場合、つまりコード再読み込みツールを使用する場合にのみ、行をスキップできます-実行時にコード変更/新しいコードを追加します。ホットスワップは、システムをシャットダウンせずにコンポーネントを交換する機能です。ホットスワップとは、プログラムの実行を中断することなく、プログラムの実行中のコードを変更する機能を指します。
JRebel( https://zeroturnaround.com/software/jrebel/ )またはHotSwapAgent( http://www.hotswapagent.org/ )など、さまざまなホットスワップツールがあります。
コードの変更をリロードするためにアプリケーション全体を再構築する必要がなくなります。これにより、時間を大幅に節約できます。完全なビルドプロセスを実行する代わりに、IDEに組み込まれたコンパイラを使用するだけで、hotSwapエージェント/ツールがコードをJVMに再ロードします。
この場合、実際にはスキップされませんが、行をコメント/変更してリロードできます。このツールはかなり素晴らしいです!!!!開発/デバッグプロセスを大幅にスピードアップ
デバッグ時に「行の実行」をスキップすることはできません。 F8キーを押すと、ステップオーバーできます。
IntelliJやEclipseでさえ、行の実行をスキップすることはできません。あなたができる唯一のことは、あなたがステップオーバー(F8)をすることができることです-これは関数の中に入ることなく行ごとにトレースします。
もう1つは、ステップアウト(Shift + F8)です。これは、その単一ステップの行間で実行することにより、次のデバッグポイントに直接移動します。