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. 支付宝支付示例-python

    项目演示: 1.输入金额 ​ 2.扫码支付: ​ 3.支付完成: ​ ​ 具体操作步骤: 第一步:注册账号 https://openhome.alipay.com/platform/appDaily. ...

  2. shell中的死记硬背

    一.shell的引号们 1."" -> 双引号(不保留完整内容,比如遇到$, 反引号, \ 等就会执行相应的shell) echo "Today is `date` ...

  3. “子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。”SQL查询错误解析

    为了实现下述代码,首先得有数据库和相应的表格,本文用的是https://blog.csdn.net/qaz13177_58_/article/details/5575711/中的案例,即先用链接中那些 ...

  4. JSON解析工具——fastjson的简单使用

    从官方文档入手: 常见问题与快速上手:https://github.com/alibaba/fastjson/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98 各种使 ...

  5. 成都优步uber司机第四组奖励政策

    万能的优步成都团队放出了优步司机第四组,一二三组奖励已经骤降,在月末放出第四组车主档,这是要让一切归于平静的节奏么!!! 滴滴快车单单2.5倍,注册地址:http://www.udache.com/如 ...

  6. 佛山Uber优步司机奖励政策(12月28日到1月3日)

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

  7. 6 生成器 yield 协程

    1.生成器 ----> 1 b = [x*2 for x in range(100000000000)] MemoryError: 想生成一个存放很多数据的列表,但是又不想内存占用太多 每次用一 ...

  8. Mac下node.js安装与卸载

    安装: 访问 http://nodejs.org/ 进入官网,下载 Mac 版本的 node.js,双击打开安装即可. 通过终端输入命令 node -v 验证 node 是否安装正确:npm -v 验 ...

  9. Ruby & Rails学习资料

    ------------------教程------------- Ruby风格指南(代码规范) https://github.com/bbatsov/ruby-style-guide 笨方法學 Ru ...

  10. == vs === in Javascript

    本文来自网易云社区 作者:魏文庆 如果你只想知道==与===的区别,请直接看总结,当然我更希望您能耐心看完全文.Javascript中用于相等比较的操作符有两个==和===.==我们通常称为" ...