1、查看是否打开了coredump

  1. lybxin@Inspiron:~/MyRes/miscellany/test/01_coredump$ulimit -c  #这里可以看到ulimit限制coredump的产生
  2. 0
  3. lybxin@Inspiron:~/MyRes/miscellany/test/01_coredump$ulimit -c unlimited  #取消限制
  4. lybxin@Inspiron:~/MyRes/miscellany/test/01_coredump$ulimit -c
  5. unlimited

2、coredump默认存储在与程序相同的目录里

3、core文件的命名规则
/proc/sys/kernel/core_uses_pid  1 表示使用procid命名,0表示不使用
/proc/sys/kernel/core_pattern 可以设置格式化的 core 文件保存位置或文件名
echo “/opt/corefile/core-%e-%p-%t” > /proc/sys/kernel/core_pattern
将会控制所产生的 core 文件会存放到 /corefile 目录下,产生的文件名为 core- 命令名 -pid- 时间戳
以下是参数列表 :
   %p - insert pid into filename 添加 pid
   %u - insert current uid into filename 添加当前 uid
   %g - insert current gid into filename 添加当前 gid
   %s - insert signal that caused the coredump into the filename 添加导致产生 core 的信号
   %t - insert UNIX time that the coredump occurred into filename 添加 core 文件生成时的 unix 时间
   %h - insert hostname where the coredump happened into filename 添加主机名
   %e - insert coredumping executable name into filename 添加命令名

4、core_pattern内核解析函数

format_corename

5、Coredump调试

除了下面方法外,也可以在打开gdb后使用core-file core-xxx命令来吧core-xxx文件加载进去

  1. lybxin@Inspiron:~/MyRes/miscellany/test/04_gdbtest$gdb -core=core
  2. GNU gdb (Ubuntu7.11.1-0ubuntu1~16.04)7.11.1
  3. Copyright(C)2016FreeSoftwareFoundation,Inc.
  4. LicenseGPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
  5. This is free software: you are free to change and redistribute it.
  6. There is NO WARRANTY, to the extent permitted by law.  Type"show copying"
  7. and "show warranty"for details.
  8. This GDB was configured as "x86_64-linux-gnu".
  9. Type"show configuration"for configuration details.
  10. For bug reporting instructions, please see:
  11. <http://www.gnu.org/software/gdb/bugs/>.
  12. Find the GDB manual and other documentation resources online at:
  13. <http://www.gnu.org/software/gdb/documentation/>.
  14. For help, type "help".
  15. Type"apropos word" to search for commands related to "word".
  16. [New LWP 6093]
  17. Core was generated by `./testgdb.out'.
  18. Program terminated with signal SIGSEGV, Segmentation fault.
  19. #0  0x00000000004005f4 in ?? ()
  20. (gdb) bt
  21. #0  0x00000000004005f4 in ?? ()
  22. #1  0x000000000000000a in ?? ()
  23. #2  0x0000000000000140 in ?? ()
  24. #3  0x00007fff5297f7d0 in ?? ()
  25. #4  0x0000000000000145 in ?? ()
  26. #5  0x00007fff5297f6d0 in ?? ()
  27. #6  0x000000000040065e in ?? ()
  28. #7  0x00000000004007ac in ?? ()
  29. #8  0x000000647ce2a7fa in ?? ()
  30. #9  0x0000000000000000 in ?? ()
  31. (gdb) file all.out
  32. warning: core file may not match specified executable file.
  33. Reading symbols from all.out...done.
  34. (gdb) bt
  35. #0  0x00000000004005f4 in test1 (p=320)
  36.    at /home/lybxin/MyRes/miscellany/test/04_gdbtest/testgdb.c:18
  37. #1  0x000000000040065e in test2 (offset=100)
  38.    at /home/lybxin/MyRes/miscellany/test/04_gdbtest/testgdb.c:30
  39. #2  0x00000000004006c3 in main (argc=1, argv=0x7fff5297f7d8)
  40.    at /home/lybxin/MyRes/miscellany/test/04_gdbtest/testgdb.c:46
  41. (gdb)

Coredump及调试的更多相关文章

  1. 【Coredump】调试之旅

    测试反馈,core了. 拿到环境,发现6和11,一个是重复释放,一个是非法指针. 用GDB一挂 ,发现 1 GNU gdb (GDB) 7.5 2 Copyright (C) 2012 Free So ...

  2. gdb 调试coredump文件过程

    gdb 调试coredump文件过程: 第一步:首先需要一个进程的coredump文件,怎么搞出coredump文件呢? 1. ps -fax|grep                 进程名称 找到 ...

  3. gdb调试coredump文件

    linux上程序崩溃起来挺烦人,不过linux 比较好的是有gdb. 1.生成coredump文件 echo "ulimit -c unlimited" >> /etc ...

  4. gdb 调试coredump文件过程:

    第一步:首先需要一个进程的coredump文件,怎么搞出coredump文件呢? 1. ps -fax|grep                 进程名称 找到进程的pid 2.gdb -p pid ...

  5. 40.Linux应用调试-使用gdb和gdbserver

    1.gdb和gdbserver调试原理 通过linux虚拟机里的gdb,来向开发板里的gdbserver发送命令,比如设置断点,运行setp等,然后开发板上的gdbserver收到命令后,便会执行应用 ...

  6. 基于solarflare的openonload技术以TCPDirect方法加速epoll

    [前言]基于solarflare的onload模式加速,官方文档给出TCPDirect模式可以实现从300ns到30ns的延迟缩减.我们需要测试在我们的交易模型框架中他的延时,有人给出了tcpdire ...

  7. 转:linux coredump调试

    1 )如何生成 coredump 文件 ? 登陆 LINUX 服务器,任意位置键入 echo "ulimit -c 1024" >> /etc/profile 退出 L ...

  8. 快速学习C语言二: 编译自动化, 静态分析, 单元测试,coredump调试,性能剖析

    上次的Hello world算是入门了,现在学习一些相关工具的使用 编译自动化 写好程序,首先要编译,就用gcc就好了,基本用法如下 gcc helloworld.c -o helloworld.o ...

  9. coredump调试的使用

    一,什么是coredump 跑程序的时候经常碰到SIGNAL 或者 call trace的问题,需要定位解决,这里说的大部分是指对应程序由于各种异常或者bug导致在运行过程中异常退出或者中止,并且在满 ...

随机推荐

  1. 分布式缓存 Redis(一)

    概念 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,和Memcached类似,它支持存储的value类型相对更多,包括string( ...

  2. java并发(1)

    hashmap效率高单线程不安全,hashTable效率低但线程安全 因为hashTable使用synchronized来保证线程安全,所以效率十分低,比如线程1使用put插入数据时,线程2既不能使用 ...

  3. C# string 转 byte[]

    string 转 byte[] /// <summary> /// string 转 byte /// </summary> /// <param name=" ...

  4. HTML基础part1

    HTML基础 Web的本质就是利用浏览器访问socket服务端,socket服务端收到请求回复数据提供给浏览器进行渲染显示. import socket def main(): sock = sock ...

  5. 西安Uber优步司机奖励政策(12月28日到1月3日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  6. 1030: [JSOI2007]文本生成器

    1030: [JSOI2007]文本生成器 https://www.lydsy.com/JudgeOnline/problem.php?id=1030 分析: AC自动机+dp. 正难则反,求满足的, ...

  7. MVC下的Area区域知识点

    新建area区域 1.如果与根目录下的url相同,那么需要在RouteConfig.cs中 public static void RegisterRoutes(RouteCollection rout ...

  8. PS 给天空添加蓝天白云<转载>

    https://jingyan.baidu.com/article/b2c186c8e83b1cc46ef6ffee.html 给图片添加蓝天白云的步骤: 1.打开要加蓝天白云的照片.(如图一) [图 ...

  9. String、StringBuffer、StringBuilder的区别和解析

    1.三个类之间的关系 他们都是通过字符数组来实现的,继承关系 String:字符串常量,不可变类 StringBuffer:字符串变量,可变类,线程安全 StringBuilder:字符串变量,可变类 ...

  10. Qt-QML-C++交互实现文件IO系统-后继-读取XML文件和创建XML文件

    在前面两篇中,大致完成了一个文件IO的读和写操作.前面两篇文章链接 http://blog.csdn.net/z609932088/article/details/71488250 http://bl ...