私はGoogleAppEngineソース(SDK 1.7.0)にブレークポイントを入れようとしていますが、IDEA Ultimate(11.0.2)はちょうど私にWarning: No executable code found at line 482 in class com.google.appengine.api.memcache.AsyncMemcacheServiceImpl
を伝え続けます。Intellij IDEAでJavaブレークポイントを設定できません
単体テストのコードを実行して開発サーバーを起動すると、このエラーメッセージが表示されます。
非常に告白されています。とにかく、私のソースは外部(IDEAホームとプロジェクトホームの両方に関連する)ディレクトリにあり、私のjarファイルはAppengine SDKのlibディレクトリの下にあります。
私のjarファイルはプロジェクトライブラリとしてモジュールに追加され、ソースはこのライブラリに添付されています。私はモジュールの依存関係も持ち歩いていましたが、運が全くありませんでした。最後に、このライブラリをコンパイルスコープに入れることにしましたが、SDKが実行時にこれらのjarファイルを提供するので、それは悪い考えでした。そこで、私は提供スコープにフォールバックすることに決めました。
また、モジュールの依存関係タブでエクスポートチェックボックスを使用していましたが、これは無関係であると思います。web helpによれば、エクスポートは依存モジュールがある場合のみ重要です。よく
とにかく、この質問は4 years agoでも発生しました。だから私は今、この問題を解決することが本当に難しいかどうか疑問に思っています。
私は今非常に失望しています。これまでIDEAに何の問題もなかった...この問題はarised to other peopleであることもわかったので、これは一意ではないと思います。
何か助けていただければ幸いです。
私が原因以下の私のjavap
実験に私の質問を編集した:クラスとソースが同期してされていないようです。私は1.7.0関連のリビジョンをSVNからチェックアウトし、私は1.7.0 SDKを使用しているので、これらは同期していてはいけません。
Hmmm ....それは論理的に聞こえる... :)私はそれがどのように構築されたかを調べようとしますが、私はコードをコンパイルした人ではないので(私はGoogleです)、私は本当に知りませんどうすればいいの?これに関する提案はありますか? –
OK ...私はちょうどデバッグ情報が利用可能かどうかを見る方法に関連するあなたの他の答えを見つけました...あなたは本当に役に立つ人です! :)私はそれを試してみましょう。 –
だから。私はクラスを正常に逆アセンブルした 'javap -v'コマンドを試しました。今私が見たことは、私の以前の疑惑を保証しただけです。逆アセンブルされたファイルは 'LineNumberTable:line 481:0'と言っています。これはちょうど私がブレークポイントを置くメソッドヘッダーの行番号です(次の行に置く)。だから、クラスとソースは同期しているようです(とにかく大きな驚きはありません)。 –