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설명대로 사용하시면 됩니다여기.

모든 주요 배포판의 저장소에서 사용할 수 있어야 합니다. 보시다시피 스크립트를 작성하거나 한 줄의 코드를 작성할 수 있습니다.여기.

여기있어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

관련 정보