Bashスクリプトを使用してデバッガプロンプトにブレークポイントを送信する

Bashスクリプトを使用してデバッガプロンプトにブレークポイントを送信する

ブレークポイントを簡単に設定できるように、bashを使用してスクリプトを作成しています。

エコーとパイプラインを使用してブレークポイント設定コマンドをJavaデバッガjdbに送信できることを確認したいと思います。

一緒に接続したコマンドはjdbでブレークポイントを正常に設定しましたが、すぐにデバッガを閉じました。

次のようにブレークポイントをjdbにパイプします。

(echo -n; sleep 5; echo "stop at MainActivity:77") | jdb -sourcepath app/src/main/java -attach localhost:7777

出力は次のとおりです...

Initializing jdb ...
> Set breakpoint saf.mobilebeats2.MainActivity:77
> Input stream closed.

答え1

expect説明どおりに使用してくださいここ

すべての主要なディストリビューションのリポジトリで利用できる必要があります。ご覧のとおり、スクリプトを作成したり、1行のコードを書くことができます。ここ

ここにいるmanページあなたが見てみたい場合。

そしてこれはExpectの繰り返しの例。

答え2

サブシェルの助けを借りて、最初のアイデアを実装できます。

( echo "stop at MainActivity:77"; cat -; ) | jdb -sourcepath app/src/main/java -attach localhost:7777

これは、echoコマンドを処理した後、最初のSTDINが閉じられ、その後のcatがシェルからの入力を待つために機能します。

[1]https://stackoverflow.com/a/4775964

[2]https://stackoverflow.com/a/1564754

関連情報