2011-10-25 1 views
2

私はJavaアプリケーションをリモートでデバッグしています(初めてではありません)変数を保持する可能性があることを知らずに値を探しています。これは特に私が自分のコードではなくライブラリコードを実行しているので見つけるのは難しいので、私は不思議に思っていました。 eclipseは現在スタックにある変数をすべての値と共に表示できるので、これらを検索する方法はありますか?あるいは、少なくともテキストをどこかに捨てて、それをgrepしてください。リモートデバッグ中にスタック内の現在の場所で使用可能な変数を検索する方法はありますか?

答えて

1

通常、デバッグ中に検出された値の中から検索する必要がある場合は、JacksonObjectMapperを使用してJSONにエクスポートします。ブレークポイントヒット時に、myObjのテキスト表現内の文字列を検索したいとしましょう。これはネストされたオブジェクトのある深刻なPOJOです。次のように評価してください:

org.codehaus.jackson.map.ObjectMapper mapper = new org.codehaus.jackson.map.ObjectMapper(); 
mapper.writeValue(new java.io.File("/tmp/myObj.json"), myObj); 

そして、作成したばかりのファイルの中でgrepの値を調べてください。 YMMV:どこから検索を開始するのか分からない場合は、スタック上の情報を繰り返し処理する必要があります。また、JSON表現はあらゆる種類の検索には適していないかもしれません。

1

あなたが求めている機能についてはわかりませんが、別のアプローチがあります。あなたが一般的な領域を知っていて、あなたが探しているオブジェクトがあまり一般的ではないと仮定すると、eclipseは条件付きブレークポイントをサポートしているので、メソッド変数とオブジェクト状態をチェッキするメソッドの最後にブレークポイントを設定できます。

+0

はい、私はその機能について知っていますが、どのような変数があるのか​​わからないときに、どのように役立つのか分かりません(ほとんどの変数には、テーブルのように厄介なものを含む、地図など) – Thor84no

+0

誰も他の提案がないようです。私はこれを行うためにアドオンをコーディングすることが可能かどうか疑問に思います。とにかくありがとう。 – Thor84no

1

evarsを試すことができます。私は検索機能を試していませんが、スタック上のすべての変数を展開してファイルにエクスポートすることができます。 Eclipseに手動で最新バージョンをインストールしました。つまり、jarファイルをdropins/pluginsディレクトリに入れました。 Eclipse 3.6.1で私のために働いた。

関連する問題