核心转储文件格式

Ava*_*dhP 6 linux gdb kernel

我为项目编写了一个自定义核心转储处理应用程序.我已经更改了'/ proc/sys/kernel/core_pattern'来调用我的dump-handler并成功调用它.

现在问题是将核心转储保存到gdb可以识别的文件中.目前我的dump-handler从STDIN读取转储并将其保存到文件'core.dump'中.当我尝试将此核心转储加载到gdb时,它给出了错误:

(gdb) ... is not a core dump: File format not recognized

当我在标准核心转储上运行'file'命令时,它会给我以下信息:

core: ELF 64-bit LSB core file x86-64, version 1 (SYSV), SVR4-style, from './dump_gen'

对于自定义生成的转储,'file'给出以下内容:

core.dump: data

请任何人都可以帮我正确编写core-dump,这样它就可以在gdb中使用了.

PS:我不想使用标准的核心转储文件.

Ulr*_*gel 5

我认为您某种程度上不会将所有数据写入核心文件。

创建一个简单的脚本,使其可执行,并将核心模式设置为脚本。

#!/bin/sh
cat > /tmp/core.$$
Run Code Online (Sandbox Code Playgroud)

现在生成一个核心文件(例如,运行sleep 1243并按 ctrl+\),它应该可以工作。

我只是在我的系统上自己测试过,它可以正常工作。

  • 我也面临着同样的问题,但想知道以上步骤会做什么?它将为我们生成一个新的核心转储,可以将其作为参数传递给gdb吗?谢谢! (2认同)