2

通常、ターミナルに入力してJavaプログラムのデバッグを開始するjdbと、デバッグモードになります。次に、「stop at com.android.contacts.dirtyImport.DirtyImportManager:95」のように入力して、jdbに特定の行で停止するように指示できます。

ここに質問があります:これらの2つのcmdを組み合わせて1つ入力するにはどうすればよいですか?「jdb<com.android.contacts.dirtyImport.DirtyImportManager:95で停止」のようなもの。私がこの要件を持っている理由は、vimにデバッグ情報を自動生成させてデバッグモードに入り、ブレークポイントの作成を停止したいからです。

4

2 に答える 2

3

1 つのオプションは、標準入力の先頭に行を追加することです。

{ echo "stop at com.android.contacts.dirtyImport.DirtyImportManager:95"; cat; } | jdb

これにより、最初に指定された行を出力し、次に標準入力を読み取り、読み取った行を標準出力に出力するサブシェル ( {})が開始されます ( )。入力全体が jdb にパイプされます。echocat

ただし、これは端末入力とパイプ入力を区別する一部のプログラムを混乱させます。この場合、デバッガーは多くの場合、ファイルからのコマンドの実行をサポートしているため ( のように)、プログラムの参照を確認する必要がありgdbます-x

于 2012-05-15T09:45:43.493 に答える
0

よくわかりませんが、expectスクリプトの生成を検討しているかもしれません。これは、自動化で何かを行うチュートリアルです。gdb

于 2012-05-15T09:39:02.610 に答える