実行中のプロセスとそのシンボル テーブルのコア ダンプを取得することはできますか?
質問
gdb を取得するか、他のツールを使用して、実行中のプロセスとそのシンボル テーブルのコア ダンプを作成することは可能ですか?プロセスを終了せずにこれを行う方法があれば素晴らしいでしょう。
これが可能であれば、どのようなコマンドを使用しますか?(Linux ボックスでこれを実行しようとしています)
解決
$ gdb --pid=26426 (gdb) gcore Saved corefile core.26426 (gdb) detach
他のヒント
あるいは走る gcore $(pidof processname)
.
これには、(gdb を実行して CLI にコマンドを発行するよりも) 最短の時間でアタッチとデタッチができるという利点があります。
注記: 次のメソッドは実行中のプロセスを終了しますが、シンボルも必要です。
次のシグナルのいずれかを (action=core を使用して) 実行中のプロセスに送信できます。
から: 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 で開くことができます。
使用できます generate-core-file
gdb のコマンドを使用して、実行中のプロセスのコア ダンプを生成します。
所属していません StackOverflow