当前位置: 首页 > article >正文

Linux高并发服务器开发 第九天(gdb调试器/基础指令 栈帧)

目录

1.gdb调试器

1.1要求

1.2基础指令

1.3其他指令

2.栈帧


1.gdb调试器

1.1要求

- 程序必须是自己编写的(能完全看懂)。
- 只能用来调试逻辑错误!
- 必须添加 -g 参数,使用 gcc 编译生成的可执行文件,才能调试!

1.2基础指令

- -g:必须使用该参编译可执行文件,否则没有调试表!
- gdb ./a.out
- l/list:   list 1 列出源码,根据源码指定行号设置断点。 1 代表从第1行开始。


- b(break): b  55 在第55行添加断点。  b  main   在main函数位置添加断点。  b add 、b sub...


- run/r : 运存程序,启动调试!
    - 代码会自动运行,停止在断点处。断点对应的代码行,没有执行!
- n(next): 下一条指令(不进入函数,执行完之后直接跳过)
- s(step): 下一条指令(进入函数)
- p(print): 打印变量值。  如: p var ----- 查看 var 变量的值。
- continue: 继续执行断点后续的指令
- finish:结束当前函数调用。
- quit:退出当前gdb调试。

1.3其他指令

- start:不使用断点,直接启动程序,开始单步调试。
- run/r:找出程序出现段错误的位置 。用法:gdb启动调试,直接run 。停止的位置,就是出段错误的代码位置。
- 设置main函数命令行参数:
    1. set args  参1 参2 参3 。。。  ( 在 start/run 之前设置。)

        
    2. run 参1 参2 参3 。。。
- info b : 查看断点信息表


- b 23 if i = 5 :设置条件断点。 只有满足该条件时,断点才生效


- 设置 断点生效、失效。
    - disable 2 :  设置编号为 2 号的断点,失效。 使用 info b 查看。

        
    - enable  3 :  设置编号为 3 号的断点,生效。 使用 info b 查看。

- delete 1 : 删除 编号为 1 号的断点。


- ptype : 查看变量类型


- display:设置跟踪变量。如:display i。 跟踪i变量


- undisplay:取消跟踪变量。使用跟踪变量的编号。  如: undisplay 2 : 取消 2 号变量的跟踪。

- bt:列出当前程序,正存活着的栈帧。

在第54行打上断点 b 54


- frame:根据栈帧编号,切换栈帧。

2.栈帧

栈帧:用来给函数调用提供空间,保存局部变量和临时值。形参和局部变量地位等同。

 


http://www.kler.cn/a/470874.html

相关文章:

  • 打开idea开发软件停留在加载弹出框页面进不去
  • .net core 为什么使用 null!
  • 数据治理如何激活企业沉睡数据价值?
  • NOVA:AutoRegressive Video Generation Without Vector Quantization——自回归视频生成无需向量量化
  • 119.使用AI Agent解决问题:Jenkins build Pipeline时,提示npm ERR! errno FETCH_ERROR
  • 微信小程序获取图片使用session(上篇)
  • latex学习记录
  • 网络安全漏洞防护技术原理与应用
  • 【RK3588 Linux 5.x 内核编程】-Misc设备驱动
  • 【JMeter】单接口
  • 关于IDE的相关知识之二【插件推荐】
  • Freemarker模板进行判空
  • 【行空板K10】获得当前所在城市及JSON库的移植:
  • 《机器学习》——逻辑回归基本介绍
  • 122.【C语言】数据结构之快速排序(Hoare排序的优化)
  • 【STM32】VSCode打开STM32工程时结构体和宏报错问题解决
  • Redis数据库——Redis雪崩、穿透、击穿
  • STM32-笔记32-ESP8266作为服务端
  • 设计模式七大设计原则Java 实践
  • 没有图形界面,如何快速部署一个Ubuntu 24.10的Server虚拟机
  • AICMP,开启智能挖矿新时代!
  • Elasticsearch 创建索引 Mapping映射属性 索引库操作 增删改查
  • C++:const和constexpr两个关键字
  • 【C++数据结构——线性表】顺序表的基本运算(头歌实践教学平台习题)【合集】
  • springboot+vue实现SSE服务器发送事件
  • 【OceanBase】利用 OceanBase 向量检索能力构建文档智能问答小助手