coredump调试实操总结

一. coredump的使用:
何谓core文件?当一个程序崩溃时,在进程当前工作目录的core文件中复制了该进程的存储图像。
core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的。
参考:http://blog.chinaunix.net/uid-29974135-id-4650793.html

  1. 编译debug版本的应用(+g):
    ① 生成core文件
    # ulimit -c unlimited
    # echo ‘core.%e.%p’ > /proc/sys/kernel/core_pattern
    # ./main_debug &
    死机自动产生core.bu_main.1779(文件有619M)
    ----不知道为什么有时不能产生core?
    ----将机器里面应用存放的分区挂载为rw的,好像就能够产生core了—[不知道根本原理]
    ----core文件很大,有时需要等待1分钟生成结束。
    ② 服务器上使用gdb调试
    #arm-xilinx-linux-gnueabi-gdb main_debug core.bu_main.1779
    (gdb) bt
    打印:#0 0x359e6a34 in ?? ()
    #1 0x35a2a1e4 in ?? ()
    Backtrace stopped: frame did not save the PC
    则启动时前面有提示“
    warning: Could not load shared library symbols for …
    Use the “info sharedlibrary” command to see the complete listing.”
    (gdb) bt 正确报告
    #1 0x35935

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
调试coredump时,可以使用gdb来帮助我们定位问题。首先,确保已经安装了gdb工具。接下来,使用gdb打开coredump文件,命令格式为"gdb <可执行文件路径> <coredump文件路径>"。这样就会进入gdb的调试环境。在gdb中,我们可以使用一些命令来获取关于coredump的信息和调试程序。 1. 使用命令"bt"或"backtrace"来查看函数调用栈,这可以告诉我们程序运行到crash的位置之前经过了哪些函数调用。 2. 使用命令"info registers"来查看寄存器的值,这可以帮助我们理解程序在崩溃时的状态。 3. 使用命令"print <变量名>"来查看变量的值,这可以帮助我们了解程序在崩溃时的数据状态。 4. 使用命令"list"来查看源代码,这可以帮助我们找到问题所在的具体代码位置。 5. 使用命令"run"重新运行程序,这可以帮助我们重现coredump并进行调试。 需要注意的是,在调试coredump时,有时候只能从core文件中找出崩溃的直观原因,而更深层次的原因可能需要结合代码和运行上下文来分析。因此,除了使用gdb命令来查看coredump的信息外,还需要对程序的代码进行分析,以便找到问题所在。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [gdb调试coredump(使用篇)](https://blog.csdn.net/jackhh1/article/details/124434307)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值