Ist es möglich, einen Core-Dump eines laufenden Prozesses und seine Symboltabelle zu bekommen?

StackOverflow https://stackoverflow.com/questions/68160

  •  09-06-2019
  •  | 
  •  

Frage

Ist es möglich, gdb zu erhalten oder einige andere Tools verwenden, um einen Core-Dump eines laufenden Prozesses zu erstellen und es ist Symboltabelle? Es wäre toll, wenn es eine Möglichkeit, dies zu tun, ohne den Prozess zu beenden.

Wenn dies möglich ist, welche Befehle würden Sie nutzen? (Ich versuche, diese auf einer Linux-Box zu tun)

War es hilfreich?

Lösung

$ gdb --pid=26426
(gdb) gcore
Saved corefile core.26426
(gdb) detach

Andere Tipps

oder laufen gcore $(pidof processname).

Dies hat den Vorteil (über gdb ausgeführt und Befehle an den CLI Ausgabe), die Sie in kürzester Zeit befestigen und lösen.

Hinweis: Die folgende Methode wird den laufenden Prozess beenden und erfordert die Symbole zu

.

Sie können eine der folgenden Signale (mit action = Kern) an den laufenden Prozess senden:
Von: 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

Wie so:
    kill <signal> <pid>

Und wenn man den Kern hat, können Sie in gdb öffnen zusammen mit der Symboldatei.

Sie können generate-core-file Befehl in gdb zu erzeugen Core-Dump des laufenden Prozesses verwendet wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top