zoukankan      html  css  js  c++  java
  • core dump

    core dump

    当程序运行的过程中异常终止或崩溃,操作系统会将程序当时的内存状态记录下来,保存在一个文件中(core文件),这种行为就叫做 Core Dump 或者叫做 ‘核心转储’,利用 coredump 可以帮助我们快速定位程序崩溃位置
    ulimit -c 查看是否开启,如果输出为0,则没有开启。需要执行 ulimit -c unlimited 开启core dump功能。开启后执行ulimit -c输出unlimited
    在配置文件中设置core文件的名称和生成路径。没有进行设置的话,默认生成的core文件不带其它任何扩展名称,全部命名为core。新的core文件生成将覆盖原来的core文件 。
    用gdb同时调试运行程序和相应的core文件,可以复现程序崩溃时的场景,定位到具体程序崩溃的位置,且能看到具体的错误,分析前后的变量,找出问题的原因。

    基本GDB命令

    为了定位问题,常常需要进行单步跟踪,设置断点之类的操作。

    下边列出了GDB一些常用的操作。

    • 启动程序:run
    • 设置断点:b 行号|函数名
    • 删除断点:delete 断点编号
    • 禁用断点:disable 断点编号
    • 启用断点:enable 断点编号
    • 单步跟踪:next (简写 n)
    • 单步跟踪:step (简写 s)
    • 打印变量:print 变量名字 (简写p)
    • 设置变量:set var=value
    • 查看变量类型:ptype var
    • 顺序执行到结束:cont
    • 顺序执行到某一行: util lineno
    • 打印堆栈信息:bt

  • 相关阅读:
    molloc堆区的动态内存分配
    异常控制流(csapp)
    优化程序性能(CSAPP)
    链接及链接器
    C# 继承 多态
    virtual和abstract
    封装
    SQL数据库语句优化方法
    select 查询所有和查询所有非空
    联合查询的用法
  • 原文地址:https://www.cnblogs.com/hi3254014978/p/14156975.html
Copyright © 2011-2022 走看看