2016-11-09 1 views
1

Linux C에서 SIGABRT의 기본 처리기 소스 코드를보고 싶었지만 찾지 못했습니다. 찾으려고 도와 주시겠습니까?기본 신호 처리기 함수의 소스 코드를 찾는 방법은 무엇입니까?

+0

(Linux C)? 당신은 리눅스 커널 신호 처리기를 의미합니까? –

+0

SIGABRT에 대한 사용자 레벨의 기본 신호 처리기 (또는 다른 신호)가 없습니다. SIGABRT의 기본 동작은 코어 덤프로 종료하는 것입니다. 이는 모두 사용자 수준 코드가 아닌 커널에 의해 처리됩니다. –

답변

1

http://lxr.free-electrons.com은 Linux 커널 소스를 읽는 가장 좋은 방법입니다.

SIGABRT에 대한 빠른 검색을 수행하면 SIG_KERNEL_COREDUMP_MASK 매크로에서만 사용된다는 것을 알 수 있습니다. 이 매크로는 차례로 sig_kernel_coredump에 의해 독점적으로 사용됩니다.

이 매크로의 사용법을 추적하면 신호 처리기가 실행되는 곳이 kernel/signal.c:2301이됩니다.

이것은 man pages에 해당합니다. 즉, SIGABRT의 기본 동작은 프로세스를 종료하고 프로그램 핵심 메모리를 덤프하는 것입니다.

관련 문제