zoukankan      html  css  js  c++  java
  • Coredump及调试

    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)





  • 相关阅读:
    spark连接MongoDB
    idea+scala+spark遇到的一些问题
    linux环境变量的配置
    sqoop的导入导出
    hive中一些常用的sql语句
    Unity 插件制作笔记(持续更新)
    linux-shutdown命令说明
    linux中的redis缓存服务器
    IceScrum敏捷开发工具的安装文档-官方最新版
    PHP设计模式系列
  • 原文地址:https://www.cnblogs.com/lshs/p/6113072.html
Copyright © 2011-2022 走看看