2016-11-23 5 views
2

私はIntelliJ IDEA 14.1.5を使用して、サードパーティ製のJar(JTidy)でメソッドを呼び出すJavaプログラムを実行しています。IntelliJ IDEAはサードパーティ製のjarでメソッドにステップインしません

このjarのソースが添付されています。そのメソッドの1つを強調表示してctrl-Bを押してその宣言に行くと、IDEAは正しくそこに行きます。

私はこのメソッド内で、私が知っている文が実行されていることにブレークポイントを設定します。

私はすべて設定>ビルド、実行展開>デバッガ>ステッピングのフィルタをステップオフにしました。

java.lang.String.append()のように、JCLのメソッドにステップインすると正しく動作します。

しかし、このサードパーティ製のjarに入ると動作しません。フォースステップイントも機能しません。そのコード内のブレークポイントも機能しません。メソッド全体がステップオーバーとして扱われます。つまり、検査するプロセスの正確なポイントを見ることはできません。

これを機能させるにはどうすればよいですか?ソースをアタッチすると、少なくともone other answer on another SO question that suggests that this should workがあることを除いて、必ずしもそのコードのデバッグが有効になるわけではありません。ヒントはIntelliJ's documentation on debuggingです。

+1

ヒント:このような特定の製品のバグの種類の質問は、ここではまれに良い回答となると思います。むしろ、JetBrainフォーラムやバグトラッカーに切り替えることをお勧めします。あなたは最終的にIntelliJがA)より多くの洞察B)多くの動機づけとC)潜在的なバグを修正する手段を持っている人々によって所有されている製品であることが分かります。 – GhostCat

+0

フェアポイント。私がここに求めている一つの理由は、製品固有のものではなく、バグではなく、むしろいくつかの一般的な詳細が欲しいということです。 ...例えば、私はこのジャーがデバッグ情報をオンにしてコンパイルされていないと強く信じています。しかし、私は、デバッガがそこに入るのを止めることはないという印象を与えられています。たとえば、IDEA 13以降では、バイトコードとソースの両方を持っていると仮定すると、教育上の推測が可能です。 –

答えて

0

私はこのコードを使用してjTidyコード内部にブレークポイントを置くことを試みた:https://github.com/ajorpheus/simple-maven-testbed(特にthisコミット)。

IntelliJの情報をビルドします。

IntelliJ IDEA 2016.3 
Build #IU-163.7743.44, built on November 17, 2016 
JRE: 1.8.0_112-release-408-b2 x86_64 
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o 

私が使用し、依存関係をした:

<dependency> 
     <groupId>jtidy</groupId> 
     <artifactId>jtidy</artifactId> 
     <version>r820</version> 
    </dependency> 

そして私は、下図のようにブレークポイントに問題がヒットしていないされていた:私は思っ enter image description here

あなたの投稿のドキュメントリンクはv。2016.2用で、他のリンクは2016年8月の最新のものであることに気づく価値がありました。私のfi最初の印象は、使用しているIntellij IDEAバージョンと関連があるかもしれないということでしたが、thisは、逆コンパイルされたサードパーティコードへのステップインが14.1.5でもサポートされるべきであると考えています。

Intellijのバージョンで自分のコードをチェックする価値はありますか?

+0

試していただきありがとうございますが、私はこれが、デバッグ情報をオンにしないで配布されたサードパーティ製のjarファイルのケースであると考えています(私の前のコメントから気づいたように)。恥ずかしながら、私は告白する必要があります私はサードパーティの瓶を見たことがないので、私はちょっと見た目が忘れてしまったので、IDEAは本当に私を思い出させる助けにはならなかった... –

関連する問題