뭔가 연관이 있는 것 같아gdb 설정 재정의 로깅이 gdb.txt를 덮어써야 한다는 것이 맞나요?.
어떤 애플리케이션의 세션을 실행하고 있다고 가정해 보겠습니다. 설명을 위해 qbittorrent를 다시 예로 들어 보겠습니다.
이전에 공유한 것처럼 실행이 어떻게 이루어지는지 –
$ gdb qbittorrent
(gdb) set logging overwrite on
(gdb) set logging on
(gdb) set pagination 0
(gdb) run
제가 아는 한 가지 방법은 응용 프로그램을 정상적으로 종료하는 것입니다. 그러나 때때로 응용 프로그램이 멈추거나 시간이 너무 많이 걸리거나 전혀 응답하지 않는 경우가 있습니다.
그런 다음 나에게 남은 유일한 옵션은 CTRL+C
이것을 사용하는 것이었습니다. 올바르게 이해했다면 qbittorrent 예제에서 기본 응용 프로그램을 종료한 다음 다음을 통해 gdb를 종료할 수 있었습니다.
(gdb) quit
애플리케이션을 종료하고 gdb 세션을 계속 실행하는 다른 방법이 있습니까? 아니면 위에서 언급한 조잡한 방법인 유일한 방법입니다.
AFAI는 신청 절차를 종료하는 것이 첫 번째가 아닌 마지막 해결책이어야 한다는 것을 알고 있습니다.
답변1
이를 위해 신호를 사용할 수 있습니다. 프로그램을 시작하기 전에 프로그램에 영향을 주지 않고 설정 USR1
이나 인터럽트를 수행하십시오 USR2
.gdb
handle SIGUSR1 nopass
그런 다음 프로그램을 중지해야 할 때 kill -USR1
적절한 (하위)pid를 사용하여 다른 셸에서 프로그램을 실행할 수 있습니다. gdb
애플리케이션이 일시 중지되면 중단점을 추가하고 상태를 검사할 수 있으며 필요한 경우 재개를 사용할 수 있습니다 cont
.