2009-06-21 12 views
26

Visual Studioでは、デバッグ時に実行ポイント(現在の命令ポインタ、黄色の点)を現在のメソッドの別の場所にドラッグできます。IntelliJで実行ポイントをドラッグできない理由(Visual Studioで可能)

これはIntelliJでは不可能であり、Javaでは一般的に不可能であるとの意見があります。どうして?

+2

ちょうど同じ質問をしました。関連するリストが機能しています! – axk

答えて

11

IntelliJは、標準のJavaデバッグインタフェースを介して実行中のJVMとやり取りするため、異なるJDKに対してプログラムをデバッグすることができます。これは、記述したとおりに実行ポイントを移動することをサポートしていません。

コールスタックを巻き戻して再度メソッド呼び出しを実行できるようにします。 IntelliJでは、スレッドウィンドウを使用して、中断しているスレッドのスタックフレームを選択し、スレッドに戻します。次に、スレッドを続行して、プログラムのその時点でメソッドを再呼び出しします。

注:これはオブジェクトの状態をロールバックしないため、奇妙な結果が生じることがあります。

+22

さて、Visual Studio、なぜあなたはすごくすばらしくなければなりませんか? :P – dialex

+0

私はメソッドの開始にデバッグポインタを再開する方法を探していました。メソッドを再呼び出しする方法はありません。私のために、私はトップフレームを落として、その機能を再実行しました。 – zinking

-7

Javaには、ランダムなコードを指す現在の実行ポインタはありません。 Javaは、実行する順序がコード内にあるものと想定しています。操作するものではありません。

おそらく、あなたがこれをやりたい理由を説明することができ、同じことを達成する別の方法を教えてもらえるかもしれません。

+5

デバッグに非常に役立ちます:) – ripper234

+0

例を挙げることができますか? –

+9

例としては、コードにバグがあり、これ以上実行できないようになっていても、その時点で問題にならないので、その部分をスキップしたいだけです。または、コードをスキップして、実行されない場合(たとえば、仮定が正しいことを証明する場合など)何が起こるかを確認し、全体を再コンパイルせずに実行する場合は、 – axk

-2

デバッガに「実行する」行を前方に伝えることができます。

2

デバッグ中のメソッドを編集してデバッグ済みコードを更新すると、JVMは実行を最初の安全な場所にロールバックします。通常、これはそのメソッドの最初の行です。

これは、デバッグのシナリオで非常に役立ちます。

関連する問題