【Linux】gdb的使用

一 、初认gdb

可以认为gbd是Linux环境下对代码的调试的工具 。

其专门为编译类型的语言进行调试。

代码的编译运行有两种模式debug和release模式,在gcc/g++编译器下,其默认是release模式,所以我们在Linux环境下,要想对代码进行调试,就需要借助gdb这个工具。其使用方法是使用gcc/g++对代码进行编译的时候,加上-g选项。

语法如下:

gcc text.c -o text -g

然后这个工具要我们另外安装,其不是默认带的。

其安装指令如下:

sudo yum/apt install gdb -y

下面我们来看看其实际的使用方式和效果:

首先我们创建一个.c文件:

然后我们在使用gcc进行编译的时候,使用下面这个指令:

gcc text.c -o text -g

然后我们要退出gdb的话,就输入q即可。

然后上面的一堆东西不知道是啥意思。

在gdb中有如下指令:

list(l):显示当前位置开始的十行代码:

list(l) 函数名:

list 文件名:行号:列出指定文件的源代码

断点的设置:

b 行号:在指定的行号设置断点

b 函数名:在函数的入口处设置断点

条件断点:

b 行号 条件语句

例如: b 10 if a==20

那么我们设置了断点后,如何去删除和查看设置的断点:

info break(i b):查看所有的断点

delete 断点的编号(d 断点编号):删除指定编号的断点

clear 行号:删除这行的断点

运行程序:

run(r):程序从开始运行直到遇到:断点/结束/程序语法错误

start:程序运行到main函数的入口处停止

程序逐语句逐过程运行:

next(n):执行当前所在行,遇到函数不入

step(s):执行当前行,不过遇到函数也会进入

constinuw(c):运行到下一个节点

我们调试还有一个很常用的功能:

对变量进行监视

p 变量名

然后我们的gdb还可以在调试的情况下,对变量进行修改:

set var 修改的变量

相关推荐
布鲁飞丝16 分钟前
彩笔运维勇闯机器学习--cpu与qps的线性关系
运维·人工智能·机器学习
kaoa0001 小时前
Linux入门攻坚——84、网络虚拟化技术-1
linux·运维·服务器
RisunJan1 小时前
Linux命令-shutdown(安全关闭或重启系统)
linux·服务器·安全
2601_965798472 小时前
MTDb Movie & TV Database Script Setup, Caching, and SEO Guide
linux·服务器·数据库·php
我头发多我先学2 小时前
linux系统编程:初识进程
linux·运维·服务器
Freak嵌入式2 小时前
版本混乱 / 依赖缺失?uPyPi:MicroPython 版 PyPI,彻底解决库管理混乱
linux·服务器·数据库·单片机·嵌入式硬件·性能优化·依赖倒置原则
云飞云共享云桌面2 小时前
SolidWorks—天津智能装备工厂1台高配主机共享给10个研发用
运维·服务器·自动化·汽车·制造
苍狗T3 小时前
LVS相关知识总结
linux·运维·服务器·lvs
lightqjx3 小时前
【Linux系统】基础 IO
linux·c语言·重定向·缓冲区·文件io·文件的系统调用
我星期八休息4 小时前
扩展— TCP 全连接队列与 tcpdump 抓包
linux·服务器·开发语言·前端·网络·tcp/ip·tcpdump