[转]让linux的coredump文件
原文标题:gdb结合coredump定位崩溃进程
原文:http://lazycat.is-programmer.com/posts/31925.html
这个文件中说的方法我试过了,在CentOS和Ubuntu12.04上都是可以的,但是在我的一个TK1板上却不产生core文件,他的系统是Ubuntu14.04,不是到为什么。
Linux环境下经常遇到某个进程挂掉而找不到原因,我们可以通过生成core file文件加上gdb来定位。
ulimit -c unlimited
这样便把core file的大小设置为了无限大,同时也可以使用数字来替代unlimited,对core file的上限值做更精确的设定。
echo "pattern" > /proc/sys/kernel/core_pattern
并且只有超级用户可以修改这两个文件。
%p: 相当于<pid>
%u: 相当于<uid>
%g: 相当于<gid>
%s: 相当于导致dump的信号的数字
%t: 相当于dump的时间
%h: 相当于hostname
%e: 相当于执行文件的名称
1
2
3
4
5
6
7
8
9
10
11
12
|
#include <stdio.h> int func( int *p) { *p = 0; } int main() { func(NULL); return 0; } |
Segmentation fault (core dumped)
#0 0x080483ba in func ()
如何定位到行?
#0 0x080483ba in func (p=0x0) at a.c:5
5 *p = 0;
SIGQUIT:终端退出符
SIGILL:非法硬件指令
SIGTRAP:平台相关的硬件错误,现在多用在实现调试时的断点
SIGBUS:与平台相关的硬件错误,一般是内存错误
SIGABRT:调用abort函数时产生此信号,进程异常终止
SIGFPE:算术异常
SIGSEGV:segment violation,无效内存引用
SIGXCPU:超过了cpu使用资源限制(setrlimit)
SIGXFSZ:超过了文件长度限制(setrlimit)
SIGSYS:无效的系统调用
[转]让linux的coredump文件的更多相关文章
- Linux产生coredump文件(core)
1.可以使用命令 ulimit -c unlimited 来开启 core dump 功能,并且不限制 core dump 文件的大小: 如果需要限制文件的大小,将 unlimited 改成你想生成 ...
- linux shell 值coredump suid_dumpable和 gdb解析coredump文件
可以设置产生coredump文件,设置dump文件命名非格式,生成dump文件的路径: linux # set suid_dumpable on if [ -e /proc/sys/kernel/su ...
- CentOS 7.2 无法生成 coredump文件
CentOS版本 cat /etc/centos-release CentOS Linux release 7.2.1511 (Core) 设置ulimit -c ulimited 依旧无法生成co ...
- linux下coredump的产生及调试方法
什么是coredump 通常情况下coredmp包括了程序执行时的内存,寄存器状态,堆栈指针,内存管理信息等.能够理解为把程序工作的当前状态存储成一个文件.很多程序和操作系统出错时会自己主动生成一个c ...
- [转载]linux下core文件设置与查看
转自:https://blog.csdn.net/dingqinghui/article/details/77855330?locationNum=9&fps=1 linux下core文件设置 ...
- gdb调试coredump文件
linux上程序崩溃起来挺烦人,不过linux 比较好的是有gdb. 1.生成coredump文件 echo "ulimit -c unlimited" >> /etc ...
- Doris开发手记3:利用CoreDump文件快速定位Doris的查询问题
Apache Doris的BE部分是由C++编写,当出现一些内存越界,非法访问的问题时会导致BE进程的Crash.这部分的问题常常较难排查,同时也很难快速定位到对应的触发SQL,给使用者带来较大的困扰 ...
- linux下创建文件与目录时默认被赋予了什么样的权限?
当我们创建一个新的文件或目录的时候,他的默认权限是什么? umask--指定当前使用者在创建文件或目录的时候默认的权限值 [root@iZ288fgkcpkZ default]# umask [roo ...
- Linux下Python 文件内容替换脚本
Linux下Python 文件替换脚本 import sys,os if len(sys.argv)<=4: old_text,new_text = sys.argv[1],sys.argv[2 ...
随机推荐
- Ubuntu 14.10 下Hadoop HttpFS 配置
因为hadoop集群中需要配置一个图形化管理数据的截面,后来找到HUE,那么在配置HUE的过程中,发现需要配置httpfs,因为配置了httpfs,hue才能去操作hdfs中的数据. HttpFs能干 ...
- boost::function用法详解
要开始使用 Boost.Function, 就要包含头文件 "boost/function.hpp", 或者某个带数字的版本,从 "boost/function/func ...
- java翻转字符串中的单词
效果: 输入: "java and python" 输出: "avaj dna nohtyp" 代码: 版本1: 不考虑字符串开头有空格,单词间有多个空格空格的 ...
- 服务容错保护断路器Hystrix之七:做到自动降级
从<高可用服务设计之二:Rate limiting 限流与降级>中的“自动降级”中,我们这边将系统遇到“危险”时采取的整套应急方案和措施统一称为降级或服务降级.想要帮助服务做到自动降级,需 ...
- SAS获取最后一条观测到指定宏
data theLast; set sashelp.class nobs=last point=last; output; stop; run; data _null_; set theLast; c ...
- 第10章 网络安全(3)_安全套接字层SSL
4. 安全套接字层 4.1 安全套接字层(SSL)和传输层安全(TLS) (1)SSL/TLS提供的安全服务 ①SSL服务器鉴别,允许用户证实服务器的身份.支持SSL的客户端通过验证来自服务器的证书, ...
- 用户授权的Sql脚本
正文 要想成功访问 SQL Server 数据库中的数据, 我们需要两个方面的授权: 获得准许连接 SQL Server 服务器的权利: 获得访问特定数据库中数据的权利(select, update, ...
- c#语言---数据类型
整型 值类型 名称 CTS类型 说明 ...
- 学习js第二天小结
if-else if ---------适用于区间范围的判断 If(判断条件--一般是boolean类型的值或是关系表达式或是逻辑表达式 ){ 要执行的代码; }else if(判断条件) ...
- restframwork框架
一 APIView: class PublishView(APIView): def get(self,request): publish_list=Publish.objects.all() ret ...