当前位置:  开发笔记 > 运维 > 正文

在Linux上创建核心转储

如何解决《在Linux上创建核心转储》经验,为你挑选了2个好方法。

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

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

kill -ABRT pid_of_process

但是有许多事情可能会阻止这种情况发生,但是你应该首先尝试这一点,看它是否在你当前的目录中产生核心转储.如果程序是交互式的并且没有陷阱退出,那么你可以通过向进程发送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身份运行可以解决权限问题.



1> Steve Weet..:

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

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

kill -ABRT pid_of_process

但是有许多事情可能会阻止这种情况发生,但是你应该首先尝试这一点,看它是否在你当前的目录中产生核心转储.如果程序是交互式的并且没有陷阱退出,那么你可以通过向进程发送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身份运行可以解决权限问题.



2> ShiDoiSi..:

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

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

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

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

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

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有