![Bash 스크립트를 사용하여 디버거 프롬프트에 중단점 보내기](https://linux55.com/image/149211/Bash%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EB%94%94%EB%B2%84%EA%B1%B0%20%ED%94%84%EB%A1%AC%ED%94%84%ED%8A%B8%EC%97%90%20%EC%A4%91%EB%8B%A8%EC%A0%90%20%EB%B3%B4%EB%82%B4%EA%B8%B0.png)
중단점을 더 쉽게 설정할 수 있도록 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
답변2
서브셸의 도움으로 첫 번째 아이디어를 구현할 수 있습니다.
( echo "stop at MainActivity:77"; cat -; ) | jdb -sourcepath app/src/main/java -attach localhost:7777
이는 echo 명령을 처리한 후 첫 번째 STDIN이 닫히고 후속 cat이 셸에서 입력을 기다리기 때문에 작동합니다.