关于调试:是否可以获取正在运行的进程及其符号表的核心转储?

关于调试:是否可以获取正在运行的进程及其符号表的核心转储?

Is it possible to get a core dump of a running process and its symbol table?

是否可以获取gdb或使用其他工具来创建正在运行的进程及其符号表的核心转储? 如果有一种方法可以不终止该过程,那就太好了。

如果可能,您将使用哪些命令? (我正在尝试在Linux机器上执行此操作)


1
2
3
4
$ gdb --pid=26426
(gdb) gcore
Saved corefile core.26426
(gdb) detach

或运行gcore $(pidof processname)

这样的好处(通过运行gdb和向CLI发送命令)可以在最短的时间内附加和分离。


您可以在gdb中使用generate-core-file命令生成正在运行的进程的核心转储。


注意:以下方法将终止正在运行的进程,并且也需要符号。

您可以将以下信号之一(使用action = core)发送到正在运行的进程:
来自:http://man7.org/linux/man-pages/man7/signal.7.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
       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

一旦有了核心,就可以在gdb中打开该文件以及符号文件。


推荐阅读

    linux查询命令进程?

    linux查询命令进程?,系统,名称,总量,情况,状态,进程,材料,工具,电脑,数据,怎

    linux命令进程状态?

    linux命令进程状态?,系统,状态,进程,命令,数据,管理,软件,名称,信息,参数,Lin

    linux查进程命令软件?

    linux查进程命令软件?,系统,软件,状态,进程,信息,命令,名称,数据,基础,表示,l

    linux查看命令行进程?

    linux查看命令行进程?,系统,软件,信息,状态,进程,名称,实时,命令,数据,电脑,

    监视进程命令linux?

    监视进程命令linux?,系统,状态,工作,地址,信息,进程,软件,命令,数据,实时,如

    linux结束进程命令?

    linux结束进程命令?,系统,软件,管理,进程,名称,数据,单位,状态,数字,代码,Lin

    linux杀进程命令图片?

    linux杀进程命令图片?,系统,工具,图片,进程,管理,名称,传播,工作,命令,后台,L

    linux命令查找进程?

    linux命令查找进程?,系统,名称,软件,状态,进程,电脑,信息,命令,材料,数据,怎

    linux命令校验进程?

    linux命令校验进程?,服务,系统,情况,状态,异常,进程,命令,管理,检测,平台,Lin

    linux命令行调试代码?

    linux命令行调试代码?,环境,代码,信息,平台,程序,编辑,版本,步骤,体系结构,

    linux中终止进程命令?

    linux中终止进程命令?,系统,进程,信息,管理,命令,代码,传播,状态,名称,数字,l

    linux下单步调试命令?

    linux下单步调试命令?,信息,系统,代码,工程,地址,工具,工作,数据,管理,环境,l

    linux串口调试命令?

    linux串口调试命令?,设备,数据,信息,数字,系统,标准,通讯,软件,通用,状态,lin

    linux关闭子进程命令?

    linux关闭子进程命令?,系统,进程,名称,软件,管理,传播,命令,信息,状态,数字,l

    linux进程运行命令?

    linux进程运行命令?,系统,工作,状态,地址,信息,进程,基础,命令,管理,软件,lin

    进程管理linux命令?

    进程管理linux命令?,系统,管理,地址,状态,情况,简介,工具,网络,分析,软件,lin

    linux下看进程命令行?

    linux下看进程命令行?,系统,情况,软件,服务,状态,名称,环境,进程,命令,数据,

    linux中断进程命令?

    linux中断进程命令?,系统,管理,软件,进程,命令,传播,暂停,结束,信号,程序,在L

    linux进程与磁盘命令?

    linux进程与磁盘命令?,管理,系统,信息,情况,基础,增长,单位,地址,发行,命令,L

    linux的进程管理命令?

    linux的进程管理命令?,系统,实时,工作,管理,命令,地址,名称,进程,服务,基础,l