在Linux上创建核心转储

Man*_*har 4 linux coredump fedora

重复:

在linux中生成核心转储

我正试图在我的"Fedora Core发行版3(海德堡)"中创建一个核心转储.

[root @ testserver test_core_dump] #uname -a

Linux testserver 2.6.12-1.1381_FC3#1 Fri Oct 21 03:46:55 EDT 2005 i686 athlon i386 GNU/Linux

这样做是为了创建核心转储.

问题是,/ proc/sys/kernel/suid_dumpable在此版本中不存在.我还在这里检查/ proc/sys/fs/suid_dumpable,但suid_dumpable不存在.

1)有没有解决这个问题?2)我在这里遗漏了什么吗?

Ste*_*eet 11

您所遵循的说明只是覆盖可能阻止您获得核心转储的o/s限制.

生成核心转储是一个简单的过程,您可以按如下方式向进程发送信号

kill -ABRT pid_of_process
Run Code Online (Sandbox Code Playgroud)

但是有许多事情可能会阻止这种情况发生,但是你应该首先尝试这一点,看它是否在你当前的目录中产生核心转储.如果程序是交互式的并且没有陷阱退出,那么你可以通过向进程发送SIGQUIT来导致核心转储,这通常必然是CTRL-

您在引用文档中遇到问题的区域是指如果您的进程未在这两种模式中运行,则运行setuid/setguid的进程可以安全地忽略该步骤.(您可以通过查看程序的文件权限并检查setuid和setguid位来判断进程是否正在运行setuid/setguid,这可以通过发出ls -l命令并在第4个位置查找s(setuid)来完成或第7个位置(setgid)(下面的setuid示例)

-r-sr-xr-x 1 root wheel 57616 28 Oct 03:28 /usr/bin/login

您是否尝试过生成核心而不使用不起作用的步骤并且确实有效?

您需要能够在运行该进程的目录中写入,或者如果不是当前目录,则需要为核心转储定义目录.以root身份运行可以解决权限问题.


Shi*_*iSi 6

我不确定我明白你想要什么.您引用的网页谈论了启用核心转储,而不是触发它们.不要担心缺少sysctl - 我的Linux系统也没有它,我可以愉快地转储核心:)你想为特定进程创建核心转储吗?

除SIGABRT外,您还可以尝试使用gcore:

NAME gcore - 为正在运行的进程生成核心文件

概要 的gcore [-O文件名] PID

说明 gcore为其进程ID pid指定的进程生成核心文件.默认情况下,核心文件将写入当前目录中的core.pid.