coredumpctl

NAME

coredumpctl - 检索和处理已保存的核心转储和元数据

SYNOPSIS

coredumpctl [OPTIONS...] {COMMAND} [PID|COMM|EXE|MATCH...]

DESCRIPTION

coredumpctl 是一个可以用来检索和处理 systemd-coredump(8) 保存的核心转储和元数据的工具。

OPTIONS

可以理解以下选项:

  • -h, --help
    打印简短的帮助文本并退出。
  • –version
    以简洁的形式打印版本并退出。
  • –no-legend
    不要打印列标题。
  • –no-pager
    Do not pipe output into a pager.
  • -1
    只显示单个核心转储的信息,而不是列出所有已知的核心转储。
  • -S, --since
    仅打印指定日期之后的条目。
  • -U, --until
    仅打印指定日期之前的条目。
  • -r, --reverse
    反转输出,以便优先显示最新的条目。
  • -F FIELD, --field=FIELD
    Print all possible data values the specified field takes in matching core dump entries of the journal.
  • -o FILE, --output=FILE
    Write the core to FILE.
  • –debugger=DEBUGGER
    使用给定的调试器执行调试命令。如果未给定并且未设置$SYSTEMD_DEBUGGER,则将使用 gdb(1)。
  • -D DIR, --directory=DIR
    使用指定DIR中的日志文件。
  • -q, --quiet
    抑制有关无法访问日志文件和可能的运行中核心转储的信息性消息。

COMMANDS

以下命令理解如下:
可以理解以下命令:

  • list
    列出在日志中捕获的与指定特征匹配的核心转储。如果未指定任何命令,则这是隐含的默认值。
    输出设计为可读的,包含列表。列表包含一个包含以下列的表:
    TIME
    崩溃的时间戳,由内核报告。
    PID
    崩溃进程的标识符。
    UID, GID
    崩溃进程的用户和组标识符。
    SIGNAL
    导致进程崩溃的信号(如果适用的话)。
    COREFILE
    是否存储了 coredump,以及它是否仍然可以访问:“none” 表示 core 没有存储,“-” 表示它不可用(例如,因为进程没有被信号终止),“present” 表示当前用户可以访问核心文件,“journal” 表示 core 存储在 “journal” 中、“truncated” 与前两个相同,但 core 太大,没有完整存储、“error” 表示无法访问 core 文件,很可能是因为权限不足,“missing” 表示 core 存储在一个文件中,但该文件已被删除。
    EXE
    可执行文件的完整路径。对于脚本的堆栈,这是解释器的名称。
    值得注意的是,不同的限制适用于日志中保存的数据和 /var/lib/systemd/coredump 中保存的核心转储文件,请参阅 systemd-coredump(8) 中的概述。因此,很可能发生的情况是,特定的核心转储仍然列在日志中,而其相应的核心转储文件已经被删除。

  • info
    显示日志中捕获的关于核心转储的详细信息。

  • dump
    提取与指定特征匹配的最后一个核心转储。除非使用 --output= 指定了输出文件,否则核心转储将写入标准输出,

  • debug
    在匹配指定特征的最后一个核心转储上调用调试器。默认情况下,将使用 gdb(1)。可以使用 --debugger= 选项或 $SYSTEMD_DEBUGGER 环境变量来更改。

MATCHING

匹配可以是:

PID
转储核心的进程的进程ID。一个整数。

COMM
可执行文件的名称(与 COREDUMP_COMM= 匹配)。不能包含斜杠。

EXE
可执行文件的路径(与 COREDUMP_EXE= 匹配)。必须至少包含一个斜杠。

MATCH
常规 journalctl 匹配筛选器,必须包含等号(“=”)。请参阅 journalctl(1)。

EXIT STATUS

如果成功,返回 0;否则,返回一个非零的失败代码。没有找到任何匹配的核心转储将被视为失败。

ENVIRONMENT

$SYSTEMD_DEBUGGER
Use the given debugger for the debug command. See the --debugger= option.

EXAMPLES

  1. 列出一个名为foo的程序的所有核心转储

    # coredumpctl list foo
    
  2. 在最后一个核心转储上调用gdb

    # coredumpctl debug
    
  3. 显示有关转储核心的进程的信息,通过其 PID 6654 进行匹配

    # coredumpctl info 6654
    
  4. 将 /usr/bin/bar 的最后一个核心转储提取到到名为 bar.coredump 的文件中

    # coredumpctl -o bar.coredump dump /usr/bin/bar
    

SEE ALSO

systemd-coredump(8), coredump.conf(5), systemd-journald.service(8), gdb(1)

你可能感兴趣的:(linux,分析工具,core)