Unix 用gdb分析core dump文件
产生core文件条件
用ulimit -c 指定core文件大小来开启core文件的生成,如:ulimit -c unlimited
用gdb分析core文件的条件
可执行程序在编译时,需加入-g参数,否则gdb无法找到symbol信息,从而无法定位问题。
例如,如下两个cpp文件中,test.cpp会导致crash。
// test.cpp void testCrash()
{
int *p = 0;
*p = 3;
}
// main.cpp #include <stdio.h> void testCrash(); int main()
{
testCrash();
return0;
}
在编译时,如下的-g为必须,否则无法定位core文件中问题。
g++ -c -g test.cpp
g++ -c main.cpp
g++ test.o main.o -o main
分析core文件所需文件
- 程序运行崩溃时产生的core文件
- 产生core文件的可执行文件
用gdb分析core文件
启动gdb:
- gdb [executable file] [core file]
进入gdb命令行后,会直接打印出导致crash的相关信息,也可执行如下命令详细查看。
gdb命令行:
- bt: 打印程序崩溃时的堆栈信息,包括导致crash的对应的frame number,文件名和行数
- frame [frame number]: 打印出该行代码
- info locals: 打印局部变量信息
- print [local variable]: 打印某个局部变量
- list: 打印相关代码
- quit: 退出gdb命令行
Unix 用gdb分析core dump文件的更多相关文章
- Linux gdb分析core dump文件
文章目录1. coredump1.1 coredump简介1.2 coredump的文件存储路径1.3 coredump产生的条件1.4 coredump产生原因2. 测试生成coredump1. c ...
- ZT 用gdb调试core dump文件
用gdb调试core dump文件 转载自:http://blog.chinaunix.net/u2/83905/showart_2134570.html 在Unix系统下,应用程序崩溃,一般会产生c ...
- 使用GDB 追踪依赖poco的so程序,core dump文件分析.
前言 在windows 下 系统核心态程序蓝屏,会产生dump文件. 用户级程序在设置后,程序崩溃也会产生dump文件.以方便开发者用windbg进行分析. so,linux 系统也有一套这样的东东- ...
- Linux上Core Dump文件的形成和分析
原文: http://baidutech.blog.51cto.com/4114344/904419 Core,又称之为Core Dump文件,是Unix/Linux操作系统的一种机制,对于线上服务而 ...
- gdb调试常用实用命令和core dump文件的生成
1.生成core dump文件的方法: $ ulimit -c //查看是否为0 如果为0 $ ulimit -c unlimited 这样在程序崩溃以后会在当前目录生成一个core.xxx ...
- gdb调试常用实用命令和core dump文件的生成(转)
1.生成core dump文件的方法: $ ulimit -c //查看是否为0 如果为0 $ ulimit -c unlimited 这样在程序崩溃以后会在当前目录生成一个core.xxxx的 ...
- 【Z】段错误Segment Fault定位,即core dump文件与gdb定位
使用C++开发系统有时会出现段错误,即Segment Fault.此类错误程序直接崩溃,通常没有任何有用信息输出,很难定位bug,因而无从解决问题.今天我们介绍core dump文件,并使用gdb进行 ...
- Linux使用笔记: 定制core dump文件的文件名
在开发过程中,当一个Linux程序异常退出时,我们可以通过core文件来分析它异常的详细原因.缺省情况下,Linux在程序异常时不产生core文件,要想让程序异常退出时产生core dump文件,需要 ...
- Sysrq 诊断系统故障 与 gdb 调试core dump
1. 典型应用场景如: 1)系统进入了挂死状态(如调度出现异常.或系统负荷过重),但仍能响应中断,此时可以通过Sysrq魔术键(c)手工触发panic,结合kdump,就能收集到vmcore信息 ...
随机推荐
- git .gitignore
github 搜索 .gitignore 外层为语言使用的,里层为编译器使用的,分别添加到自己的文件中. 目前Androidstudio使用gradle作为项目管理,.idea .iml 文件都 ...
- JS与Struts标签page
<html> <html:link name="map" page="/xxx/xxx/xxx_delete_do.do" ...
- poj1298 The Hardest Problem Ever 简单题
链接:http://poj.org/problem?id=1298&lang=default&change=true 简单的入门题目也有这么强悍的技巧啊!! 书上面的代码: 很厉害有没 ...
- reactjs
摘自阮一峰博客:http://www.ruanyifeng.com/blog/2015/03/react.html 现在最热门的前端框架,毫无疑问是 React . 上周,基于 React 的 Rea ...
- 自学 PHP,如何不走弯路?
1.一本好书至关重要.如果这本书的知识非常深入,那么还是不要看了.对初学者来说只能是打击.因为很多东西都看不懂.一本知识较为浅显,并且说明非常详细,但是能让你上手的基础知识又非常完善的书籍就非常好.( ...
- HDU-4057 Rescue the Rabbit(AC自动机+DP)
Rescue the Rabbit Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- 程序员写的东西出了bug,造成了损失谁来承担?
这是个持续多年的话题了,很多大公司,尤其是牛逼的独立分包公司(开发公司)都会有代码审核和严格QA程序,一般的公司就很难说咯,在法律上目前还没有完全支持处罚程序员bug经济损失的判例(国内如此),国外也 ...
- RecyclerView使用
步骤: 1:首先导入V7依赖包 2:在布局中引用RecyclerView 3:在activity中查找控件 4:继承RecyclerView.Adapter,实现它的3个方法, (1):加载布局的on ...
- 在asp.net中显示PDF的方法:
来源:http://www.cnblogs.com/tengs2000/archive/2009/02/23/1396646.html 一.直接显示,使用的还是原页面的URL Response.Con ...
- 首页使用page类完成生成页面内容的大部分工作
fs2在处理异常及资源使用安全方面也有比较大的改善.fs2 Stream可以有几种方式自行引发异常:直接以函数式方式用fail来引发异常.在纯代码里隐式引发异常或者在运算中引发异常,最开始只是我自己浏 ...