我正在使用 bash 编写一个脚本,以便更容易设置断点。
我想看看是否可以使用 echo 和 pipeline 将设置断点命令发送到 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
答案2
在子 shell 的帮助下,您可以实现您的第一个想法:
( echo "stop at MainActivity:77"; cat -; ) | jdb -sourcepath app/src/main/java -attach localhost:7777
这是可行的,因为在处理 echo 命令之后,第一个 STDIN 被关闭,其次后续的 cat 等待您在 shell 上的输入。