gdb에서 사용될 때 `handle SIG33 pass nostop noprint`는 무엇을 합니까?

gdb에서 사용될 때 `handle SIG33 pass nostop noprint`는 무엇을 합니까?

gdb에서 일반적으로 제공되는 디버깅 명령은 다음과 같습니다.

gdb $package

set logging on

set pagination 0

handle SIG33 pass nostop noprint

run

물론 추적 등을 수집하는 것 외에도. 위 중에서 어떤 것이 있나요?

handle SIG33 pass nostop noprint

어디에 사용해야 하고 어디에 사용하면 안 되나요?

답변1

handle SIG33

gdb제공한 버전에서 신호 33으로 무엇을 해야 하는지 알려주십시오 pass. 이는 신호를 전달하고 nostop신호가 방출될 때 디버거에 멈추지 말고 noprint아무것도 인쇄하지 않도록 지시하는 것을 의미합니다.

이 지시문은 내부적으로 신호를 사용하는 런타임을 디버깅할 때 유용합니다. Signal 33은 Android의 Bionic에서 사용됩니다(역추적용). 이를 무시하지 않으면 항상 중지되게 됩니다. Flash에 대한 유사한 지침이 표시됩니다(적어도 신호 32 및 33, IIRC 포함).

관련 정보