2011-12-21 31 views
1

私はデバッグopenAdaptorにしてみてください:org.openadaptor.bootstrap.ClasspathBootstrapperでEclipseがブレークポイントで停止しないのはなぜですか?

mainMethod.invoke(appClass, new Object[] { args }); 

私はこれがSpringAdaptorの主要な方法であることがわかりました。

しかし、Eclipseはブレークポイントで停止しませんでした。理由は何でしょうか?おかげさまで むしろ、あなたのアプリケーションを実行するよりも

+0

実行しているアプリケーションにデバッガが接続されていることを確認してください。さらにスクリーンショットや詳細情報が必要です。 – bragboy

+0

情報が不十分です。あなたはそれをデバッグしているのですか? –

+0

はい、ソースをアプリケーションに添付しました。デバッグモードです。 – user710818

答えて

1

確認:

enter image description here

デバッガを使用していることを確認してください:

enter image description here

ブレークポイントは、あなたは、デバッガを使用してアプリケーションを実行しない限り、無視されます。

これが問題でない場合は、メソッドが実際に呼び出されていることを確認してください。あなたのアプリケーションの他の場所にブレークポイントを入れてみてください(あなたが100%呼ばれているコードで)何が起こるかを見てください。

メソッドのシグネチャが(staticまたはそれ以外の)ものであれば、違いはありません。ブレークポイントがブレークすると思われる行の後でブレークポイントが折れることがあります。ブレークポイントを1行上に移動し、それが問題かどうか確認してください。

また、実際に呼び出されていないコードが実行されているかどうかを確認するために、アプリをステップ実行することもできます。これがオプションでない場合は、想定していることを確認してください(例:ifステートメント内の行にブレークポイントがありますか?ifステートメントは期待通りの評価をしていますか?

+0

回答前に私のコメントをお読みください – user710818

+2

私はして、私は私の答えを更新しました。あなたのコメントは、私が答えを書いて始めたときは元々そこにはなかったので、私が間違っているかもしれないと思った最初のことはすべてです。私はデバッガについてのあなたのコメントを見て、私はいくつかの他のオプションを追加しました。最も可能性の高い原因(ブレークポイントがコード内の別の場所で動作している場合)は、その行が実行されていると思っていることですが、何らかの理由で実際には発生しません。それはちょうど理由を考え出すことの問題でなければなりません。 – jefflunt

2

このメソッドは決して呼び出されない可能性があります。メソッドが呼び出された場所(または実行されることが100%確実な場所)の直前にブレークポイントを移動してから、ステップバイステップで移動して、メソッドがまったく呼び出されているかどうかを確認してください。

+0

Eclipseではメソッドmain内にのみブレークポイントを設定できます。 – user710818

+2

あなたはコード内でどこでも好きな場所に設定できます。 – Mr1159pm

2

Eclipseは、ブレークポイントを持つ行番号についてはスーパースマートではありません。それはちょうど "このソースファイル内の行はXです、そこに止まります"と書かれています。特定のコードカバレッジツールのように行番号を変更する後処理がある場合、ブレークポイントは間違った場所に置かれます。

また、ソースを添付していますが、実際に行っていることを確認してください。プロジェクト内またはワークスペース内のソースを持つだけでは不十分です。それがプロジェクトの場合は、プロジェクトがjarファイルではなくそのプロジェクトに依存していることを確認する必要があります。それがjarファイルの場合は、ソースとの関連付けが正しいことを確認する必要があります(クラスパス上にあるだけでは不十分です)。

最後に、実行していると思っていることを本当に実行していることを確認する必要があります。私は多くのブレークポイントを設定していて、なぜ彼らが呼び出されていないのか疑問に思っていました。その理由は、プログラムの流れが私が思っていたものと同じではないということでした。

4

あなたはデバッガセクションの[ブレークポイント]タブの上に小さなアイコンをクリックしていないことを確認してください。ツールチップに表示されているように、すべてのブレークポイントをスキップします。

関連する問題