2011-11-09 6 views
3

私はIntellijに切り替えようとしていますが、プロジェクトをロードするときに、デバッガが行をスキップして、実際にソースを追跡していないように見えます。私はこれがあいまいな問題だと知っていますが、デバッギング時にIntellijがソースコードに不適切にリンクする原因を知っている人はいますか?Intellijのデバッグの問題を解決するにはどうすればよいですか?

+0

その行動を見ていない、あなたは完全にきれいにしようとした&再構築 –

+1

は、あなたがあなた自身のソース、またはいくつかのライブラリのソースをトレースしている問題は、同じライブラリ内のいくつかのバージョン可能性がありますか??クラスパス –

答えて

2

私が考えることができるのは、現在コンパイルされているクラスが、デバッグに使用しているソースと一致していないことだけです。 この状況では、IntelliJ(または他のIDE)が、行番号などのクラスからデバッグ情報を取得し、表示している現在のソースにマップして、どのコードが表示されているかを表示します実行される。

コードが古くなっていたり、バージョン(ソースコードとコンパイルされたクラス)が何らかの形で不一致の場合は、デバッグしているIDE情報に特定の行を表示することができますが、デバッグされた "飛び降りる"行のように見えるか、あまり意味を持たない場所で停止するような、現在のソースコードを与えます。

プロジェクトを再構築しましたか? Jar内のクラスからのこれらのソースはありますか?バージョンが一致していると確信していますか?

希望すると助かります!

+0

私は同意します、それはおそらく問題です - 私は実行設定で "make"チェックボックスをチェックしようとします( " nch "セクションを参照) – Guillaume

+0

@pcalcaoそうですね、私はデバッガがソースが見つからないと苦情を申し立てたところで、これと同じ問題が戻ってくることがありました。これは、デバッガを起動し、不一致が発生したときにいくつかのコードを変更するのと同様です。私はみんながプロジェクトのビルドを提案したので、これで解決すると思います。 – MalsR

0

EclipseのJavaコンパイラを使用するようにIntelliJを設定すると、問題が解決する場合があります。下のリンクから:いくつかのtry/catchのため、それが誤って関連付けられているいくつかのバイトコード命令を生成/他の構造の場合:

https://youtrack.jetbrains.com/issue/IDEA-8021

」 これは最初の報告書について、よく知られている古いのjavacの問題ではありません(行番号が変更されているため)、デバッガは異なる行番号のジャンプ命令に遭遇し、その行番号で停止することを決定します(行番号が変更されているため)。

この問題が発生しない独自のコンパイラを使用しているため、Eclipseでの動作が異なることがあります。コンパイルにjavacを使用するようにEclipseを構成する場合は、記述されている動作を正確に参照してください。または、Eclipseコンパイラを使用するようにEclipseコンパイラを使用するように設定することもできます(現在のEAPバージョンのみに適用 - Eclipseコンパイラとの統合機能を備えたビルド5xxx)。

Eclipseコンパイラを使用するには、

Using Eclipse Java Compiler (ecj) in maven builds

関連する問題