首页 / 知识
关于bash:如何在Linux出现分段错误时生成核心转储?
2023-04-12 15:05:00

How to generate a core dump in Linux on a segmentation fault?我在Linux中有一个进程出现分段错误。 我如何告诉它在失败时生成核心转储? 这取决于您使用的外壳。如果使用的是bash,则ulimit命令控制与程序执行有关的一些设置,例如是否应该转储core。如果您输入
那么这将告诉bash它的程序可以转储任何大小的内核。您可以根据需要指定诸如52M的大小,而不是无限制的大小,但是实际上,这不是必需的,因为核心文件的大小可能永远不会成为您的问题。 在tcsh中,您可以输入
如上所述,这里要问的真正问题是如何在未启用核心转储的系统上启用核心转储。在这里回答了这个问题。 如果您来这里是为了学习如何为挂起的进程生成核心转储,答案是
如果gcore在您的系统上不可用,则
不要使用kill -SEGV,因为这通常会调用信号处理程序,这使得诊断阻塞进程更加困难 要检查在哪里生成核心转储,请运行:
要么:
其中
如果未生成核心文件(通过以下方法进行测试: 如果您的核心文件大小有限,请运行:
使它不受限制。 然后再次测试,如果核心转储成功,则在分段错误指示之后您将看到"(核心转储)",如下所示:
另请参阅:核心转储-但核心文件不在当前目录中? Ubuntu的
在Ubuntu中,核心转储由Apport处理,可以位于 有关更多详细信息,请检查:在Ubuntu哪里可以找到核心转储? 苹果系统 对于macOS,请参阅:如何在Mac OS X中生成核心转储?
最后,我所做的就是在崩溃之前将gdb附加到该进程,然后在出现段错误时执行了
也许您可以用这种方式做到这一点,该程序演示了如何捕获分段错误并将其封装到调试器中(这是
您可能还必须添加一个参数来获取gdb来转储核心,如本博客此处所示。 还有更多因素可能会影响核心转储的生成。我遇到了这些:
手册页中描述了更多可能阻止生成的情况-尝试 为了激活核心转储,请执行以下操作:
在
在
执行cmd
要检查核心文件是否被写入,您可以使用cmd
一旦写入了核心文件,请确保在相关文件(1./2./3。)中再次停用coredump设置! 对于Ubuntu 14.04 检查核心转储是否启用:
其中一行应为:
如果不 :
使用调试信息构建应用程序:
在Makefile 运行创建核心转储的应用程序(应在application_name文件附近创建名称为" core"的核心转储文件):
在gdb下运行:
默认情况下,您将获得一个核心文件。检查进程的当前目录是否可写,否则将不创建核心文件。
最好使用系统调用 例:
值得一提的是,如果您设置了systemd,则情况会有所不同。该设置通常将通过
然后可以使用
核心转储等的存储由 查找核心文件:
获取核心文件:
|
最新内容
相关内容
python如何错误追踪
python如何错误追踪,培训,异常,信息,错误,文件,日志,控制台,字符串,模块,后者,python中的traceback模块被用于跟踪异常返回信息,可以在loggingpython代码常见错误
python代码常见错误,代码,培训,平台,错误,空格,变量,赋值,制表符,属性,大小写,python常见的错误有:1.NameError变量名错误2.IndentationErrorpythonimport错误是什么原因
pythonimport错误是什么原因,培训,名称,代码,标准,函数,模块,语句,形式,程序,语法,python程序可以调用一组基本的函数(即内建函数),比如print(python断言错误怎么理解
python断言错误怎么理解,培训,代码,断言,程序,表达式,之间,错误,上面,年龄,过程,python的断言语句和if分支有点类似,它用于对一个bool表达式进pythonreturn语法错误怎么解决
pythonreturn语法错误怎么解决,培训,函数,语法错误,字符串,数值,使用说明,语句,定义,对象,以上,return语句是python语言中函数返回的一个值,每python单引号错误怎么办
python单引号错误怎么办,培训,嵌套,引号,字符,字符串,标志,错误,内容,末尾,代表性,在Python中...和"..."是完全一样的,但不能出现..."和".pythonPython错误有什么
pythonPython错误有什么,代码,培训,资料,平台,错误,空格,变量,赋值,制表符,属性,我们在写python代码时,有时候会遇到莫名的错误,而且查阅了很多python新手常犯错误有哪些
python新手常犯错误有哪些,代码,有限,培训,标准,项目,波浪,情况,冒号,错误,同学,下面总结新手学习python经常遇到的坑,需要的同学可以参考错误python线程和进程的区别
python线程和进程的区别,系统,数据,培训,单位,进程,线程,管理,时间,通讯,地址,python引入进程和线程的概念及区别threading模块提供的类:Threapython错误类型有哪些
python错误类型有哪些,异常,系统,培训,错误,代码,标准,检测,类型,程序,逻辑,python的错误有语法错误和逻辑错误语法错误程序执行过程中,pythonpython报的错误怎么处理
python报的错误怎么处理,异常,代码,名称,检测,培训,状态,信息,项目,密码,语句,在编写Python代码或开发实际应用的项目时,程序报出异常或错误是python怎样忽略warning警告错误?
python怎样忽略warning警告错误?,培训,情况,代码,错误,模块,下面,之前,以上,程序,更多,python开发中经常遇到报错的情况,但是warning通常并不