【Linux】Linux环境基础开发工具_6

文章目录


四、Linux环境基础开发工具

gdb

我们已经可以写代码了,也能够执行代码了,但是代码错了该如何调试呢?Linux中可以使用 gdb 工具进行调试。

我们写一个简单的程序:



但是我们尝试使用命令时,发现根本用不了,原因是 gcc/g++编译时默认的是 release 模式 ,而我们都知道,release 模式不可以调试,只有 debug 模式才能调试

那如何使其编译时使用 debug 模式呢?在末尾加上 -g 选项就可以使用 debug 模式 。

gdb 的基本调试指令(gdb 可以自动记录最近一次的命令):

l + 行号 :显示指定行之后的代码。

r :可以执行程序。

b + 行号:在指定行打断点。

b + 函数名:在函数入口处打断点。

b + 文件名 + ::在某个文件程序内打断点,搭配上面使用。

info b:查看断点。

d + 断点编号:删除相应断点。

disable + 断点编号:禁用相应断点。

enable + 断点编号:启用相应断点。

n :逐过程(不进入函数内部)。

s :逐语句(进入函数内部)。

p + 变量名:显示变量的当前值(不是常显示)。

display + 变量名:显示变量的当前值(常显示)。

undisplay + 变量编号:取消 display 常显示的变量。

c :从一个断点运行程序到下一个断点。

bt :查看调用堆栈。

finish :将一个函数运行结束就停下来。

until + 行号:在一个范围内,直接运行到指定行。

set var + 变量名 + 值:修改一个变量的内容。


未完待续

相关推荐
huangyuchi.几秒前
【Linux网络】UDP协议详解:透过源码看透“面向数据报”与“缓冲区”的本质
linux·网络·udp·报文·linux网络·传输层协议·报头
林九生几秒前
【Centos7】CentOS 7 yum源失效解决方案:Could not resolve host mirrorlist.centos.org
linux·运维·centos
创作者mateo2 分钟前
python基础学习之Python 循环及函数
开发语言·python·学习
福尔摩斯张3 分钟前
【实战】C/C++ 实现 PC 热点(手动开启)+ 手机 UDP 自动发现 + TCP 通信全流程(超详细)
linux·c语言·c++·tcp/ip·算法·智能手机·udp
了一梨6 分钟前
网络编程:UDP Socket
linux·网络协议·udp
weixin_409383129 分钟前
a星学习记录 通过父节点从目的地格子坐标回溯起点
学习·cocos·a星
搞机械的假程序猿9 分钟前
普中51单片机学习笔记-DS1302实时时钟芯片
笔记·学习·51单片机
车载测试工程师13 分钟前
CAPL学习-SOME/IP交互层-值处理类函数2
学习·tcp/ip·以太网·capl·canoe
车载测试工程师13 分钟前
CAPL学习-SOME/IP交互层-值处理类函数1
学习·tcp/ip·交互·以太网·capl·canoe
ChristXlx14 分钟前
Linux安装MongoDB(虚拟机适用)
linux·mongodb·postgresql