zoukankan      html  css  js  c++  java
  • gdb与coredump

    一、GDB的使用

    1.gdb的主要功能

    启动被调试程序、指定位置停住程序、程序被停住时,查看程序状态(如变量值)

    2.使用说明

    gcc -g test.c -o test     

    -g使程序可被调试

    gdb test  

    启动gdb

    break main

    第一个休息点:在main函数处设置断点

    run        

    运行程序

    list(l)  

    查看程序代码

      

    break(b)  函数名  

    在某函数入口处添加断点

    break  行号    

    在指定行添加断点 

    break  文件名:行号    

    在指定文件指定行添加断点 

    info   break        

    查看所有设置的断点

    delete  断点编号(info break显示出来的Num)

    删除指定断点

      

    print(p)  变量名  

    查看变量值

    set var(变量名) = value  

    设置变量的值

    next(n)    

    单步运行程序(不进入子函数)

    step(s)      

    单步运行程序(进入子函数)

    continue(c)  

    继续运行程序,直到遇到下一个断点

      

    quit(q)      

    退出gdb

    二、Coredump(核心转存)故障分析

    1.作用

    主要用来对付segment fault(段错误);引起原因:数组访问越界、访问空指针、栈溢出、修改只读内存

    2.linux系统默认是关闭core dump功能的

    打开:ulimit -c unlimited
    关闭:ulimit -c 0

    3.使用步骤

    gcc -g test.c -o test
    gdb ./test test.core

  • 相关阅读:
    最流行的javascript 代码规范
    jquery里阻止冒泡ev.stopPropagation()
    jquery里阻止冒泡ev.stopPropagation()
    响应式页面设计原理
    fromCharCode()的用法
    slice的用法
    java 反转数组
    java 一个数组的长度
    Java访问数组
    java 数组的定义
  • 原文地址:https://www.cnblogs.com/bettercoder/p/3379080.html
Copyright © 2011-2022 走看看