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

linux中的gdb调试

gdb是在程序运行的结果与预期不符合时,可以使用gdb进行调试

注意:使用gdb调试时要在编译上加-g参数

gcc -g -c hello.c

启动gdb调试:

gdb file   对gdb进行调试

设置运行参数:

set args   可指定运行参数

show args 可以查看设置好的运行参数。

启动程序:

run:程序开始执行,如果有断点,停在第一个断点处。

start:程序开始向下执行下一行(在第一条语句停止)

显示源代码:
 list显示的是源代码

list - 回到当前文件开头

list line :打印源代码第line行的上下文内容

list  func:打印源代码中func函数的内容

list file:1   打印file文件第一行的上下文内容

list file:func  打印file文件func函数的内容

当前文件已经是add.c:

一般来说:

打印当前行的上五行,下五行,显示函数则是上两行,下八行。默认是十行。

我们也可以自行更改:

set listsize count :设置一次显示源代码的行数

show listsize: 查看listsize的设置

断点操作:

b line 在第line行设置断点

b func  在func函数处设置断点

b file:line

b file:func

i b 查看断点信息

disable n 使n号断点无效

 enable m 使n号断点有效

delete n 删除n号断点

条件断点:

b file:8 if val== 5   在file文件第八行当val等于5时断点

调试代码:
 

next 单步跟踪,函数调用当作一条简单语句,不会进入函数体

step 单步跟踪,会进入函数体内

finish 退出进入的函数(退不出,删除函数内的断点)

until  在一个循环体单步跟踪时,这个命令可以运行程序直到退出循环体(退不出,删除循环内的断点)

continue 继续运行程序(若有断点跳到下一个断点) 

打印变量:

print count  打印count 的值

自动显示:

display 变量名

i display 显示自动显示变量的信息

disable display n 使n号变量无效

enable display n 使n号变量有效

删除自动显示:

undisplay 变量名  

delete display m

ptype 变量  查看变量的类型

退出gdb调试:

quit命令


 


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

相关文章:

  • LeetCode 0632.最小区间:优先队列
  • go-carbon v2.5.0 发布,轻量级、语义化、对开发者友好的 golang 时间处理库
  • 【数据分析】基于GEE解析2000-2020年武汉市FVC时空变化特征
  • .Net与C#
  • 图论入门编程
  • MacOS系统上Jmeter 录制脚本遇到的证书坑位
  • 【Spring Boot】第一篇 创建简单的Spring Boot项目
  • [基础IO]文件描述符{重定向/perror/磁盘结构/inode/软硬链接}
  • homeword_day1
  • 高清符合要求的SCI图片使用RStudio导出
  • NLP_循环神经网络(RNN)
  • AES算法:数据传输的安全保障
  • 20240202在Ubuntu20.04.6下使用whisper.cpp的CPU模式
  • 用python编写爬虫,爬取房产信息
  • axios get 请求 url 转码 空格转成+,导致请求失败(前端解决)
  • 备战蓝桥杯---搜索(进阶3)
  • Unicode常用属性
  • WebChat——一个开源的聊天应用
  • 阿里云游戏服务器收费价格表,一年和1个月报价
  • Unity动画循环偏移的使用
  • Idea:Idea导入Module、子Module的方式及其可能遇到的问题
  • 【Flink入门修炼】1-2 Mac 搭建 Flink 源码阅读环境
  • 【python】绘制爱心图案
  • Docker 面试题 100 道
  • openkylin(Debian系)安装nginx及安装前需要的准备
  • canvas缩放坐标系(scale)