zoukankan      html  css  js  c++  java
  • Linux程序宕掉后如何通过gdb查看出错信息 老夏课堂

    我们在编写服务端程序的时候,由于多线程并且环境复杂,程序可能在不确定条件的情况下宕掉,还不好重新,这是我们如何获取程序的出错信息,一种方法通过打日志,有时候一些错误日志也不能体现出来,这时就用到我们的core dump文件了。
    通常情况下coredmp包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息等。可以理解为把程序工作的当前状态存储成一个文件。许多程序和操作系统出错时会自动生成一个core文件。
    1 我们系统一般默认是吧core dump 关掉的,可以通过ulimit -c 查看如果是0就是关闭了,我们可以通过ulimit -c n来打开,你是设置coredump文件的最大值kb,或者直接设置不限制
    ulimit –c unlimited
    2 设置完毕后我们编写一个出错的程序实验一下
    //main.cpp
    int main()
    {
    int *xcj = 0;
    *xcj = 10;
    return 0;
    }
     
    3 编译一下,记得加-g 将调试信息编入执行程序,再运行程序
    g++ main.cpp -o main -g

    ./main

     

    4 使用gdb查看调试信息
    gdb main core

    通过gdb就可以看到错误的信息了
     
    更多内容可以到网上搜索“夏曹俊”获取我的课程
    也可以看我在csdn学院的视频课程
  • 相关阅读:
    部署NetCore项目(本文介绍用用IIS部署)
    vs中添加MySql实体集流程
    一文搞定HashMap的实现原理
    二分查找
    hashcode返回值可能为负数
    哈希碰撞与生日攻击
    并发的第二天
    java并发编程-1
    排序的第一天
    并发的第一天
  • 原文地址:https://www.cnblogs.com/xiacaojun/p/6496307.html
Copyright © 2011-2022 走看看