• Linux下gdb的使用


    一、编译文件生成可执行文件

       如果想用调试器执行一个可执行文件, 在用gcc编译时必须加上-g选项。

      加上-g选项以后,gcc在编译是会做以下额外的操作:

        1. 创建符号表,符号表包含了程序中使用的变量名称的列表。

        2. 关闭所有的优化机制,以便程序执行过程中严格按照原来的C代码进行。

    二、ulimit -c unlimited 允许生成core文件

     

    三、gdb a.out 或者先输入gdb 然后 file a.out  进入调试

     四、r/run 开始运行程序

     五、l /list  显示多行源代码

    1. list  从上次的位置开始显示,默认情况下,一次显示10行。

    2. list n显示以第n行为中心的10行代码

     3. list functionname显示以functionname的函数为中心的10行代码

     4. list - 显示刚才打印过的源代码之前的代码

    5.set listsize n 设置显示的行数

    6.show listsize显示当前设置显示的行数

     六、b/break  设置断点 程序运行到断点时会停下

    1. break location:在location位置设置断点,改位置可以为某一行,某函数名或者其它结构的地址。

    2. info breakpoint:查看断点信息。

    3. delete breakpoints 断点号:删除断点。

    七、display/disp  跟踪查看某个变量,每次停下都显示它的值

    也可以使用disable,enable,delete,info命令修改及查看其状态,用法与对断点的一样

    八、s/step 执行下一条语句,如果该语句为函数调用,则进入函数执行其中的第一条语句

    九、n/next 执行下一条语句,如果该语句为函数调用,不会进入函数内部执行(即不会一步步地调试函数内部语句)

    十、p/print 打印内部变量值

    十一、c/continue 继续运行程序,直到遇到下一个断点

    十二、set var name=value 在程序运行中动态改变变量的值

    十三、watch 监视变量值的变化

    十四、backtrace/bt 查看堆栈使用信息

    十五、f/frame 查看某一帧的堆栈信息

    f  n 查看第n条堆栈信息。

    十六、k/kill 终止正在调试的程序

    十七:q/quit 退出gdb环境

  • 相关阅读:
    异常处理 UDP通信
    网络编程 socket套接字 半连接池 通信循环 粘包问题 struct模块 Mac报错
    网络编程 osi七层协议 Time模块补充知识 TCP协议 三次握手 四次挥手
    面向对象 组合 继承
    流式布局
    小程序的瀑布流式布局
    微信小程序的短信接口
    如何高效的编程!
    爱心动画
    em、rpx和px的换算
  • 原文地址:https://www.cnblogs.com/jiangyu0331/p/11647073.html
Copyright © 2020-2023  润新知