Nice programing

실행중인 프로세스와 해당 기호 테이블의 코어 덤프를 얻을 수 있습니까?

nicepro 2020. 12. 7. 20:41
반응형

실행중인 프로세스와 해당 기호 테이블의 코어 덤프를 얻을 수 있습니까?


gdb를 얻거나 다른 도구를 사용하여 실행중인 프로세스와 심볼 테이블의 코어 덤프를 만들 수 있습니까? 프로세스를 종료하지 않고이를 수행 할 수있는 방법이 있다면 좋을 것입니다.

가능하다면 어떤 명령을 사용 하시겠습니까? (나는 리눅스 박스에서 이것을 시도하고있다)


$ gdb --pid = 26426
(gdb) gcore
저장된 corefile core.26426
(gdb) 분리

또는 gcore $(pidof processname).

이는 가능한 가장 짧은 시간에 연결 및 분리 할 수있는 이점 (gdb 실행 및 CLI에 명령 실행보다)이 있습니다.


generate-core-filegdb에서 명령을 사용 하여 실행중인 프로세스의 코어 덤프를 생성 할 수 있습니다 .


참고 : 다음 방법은 실행중인 프로세스를 종료하고 기호도 필요합니다.

실행중인 프로세스에 다음 신호 (action = core 포함) 중 하나를 보낼 수 있습니다.
From : http://man7.org/linux/man-pages/man7/signal.7.html

       Signal     Value     Action   Comment
       ──────────────────────────────────────────────────────────────────────
       SIGHUP        1       Term    Hangup detected on controlling terminal
                                     or death of controlling process
       SIGINT        2       Term    Interrupt from keyboard
       SIGQUIT       3       Core    Quit from keyboard
       SIGILL        4       Core    Illegal Instruction
       SIGABRT       6       Core    Abort signal from abort(3)
       SIGFPE        8       Core    Floating point exception
       SIGKILL       9       Term    Kill signal
       SIGSEGV      11       Core    Invalid memory reference
       SIGPIPE      13       Term    Broken pipe: write to pipe with no
                                     readers
       SIGALRM      14       Term    Timer signal from alarm(2)
       SIGTERM      15       Term    Termination signal
       SIGUSR1   30,10,16    Term    User-defined signal 1
       SIGUSR2   31,12,17    Term    User-defined signal 2
       SIGCHLD   20,17,18    Ign     Child stopped or terminated
       SIGCONT   19,18,25    Cont    Continue if stopped
       SIGSTOP   17,19,23    Stop    Stop process
       SIGTSTP   18,20,24    Stop    Stop typed at terminal
       SIGTTIN   21,21,26    Stop    Terminal input for background process
       SIGTTOU   22,22,27    Stop    Terminal output for background process

이렇게 :
kill <signal> <pid>

코어가 있으면 기호 파일과 함께 gdb에서 열 수 있습니다.

참고 URL : https://stackoverflow.com/questions/68160/is-it-possible-to-get-a-core-dump-of-a-running-process-and-its-symbol-table

반응형