gdp调试—Linux

目录

介绍

使用


介绍

代码分为debug模式和release模式

如果一份代码要被调试,这份代码必须是debug

Linux下编译代码默认是是release模式

如果你想代码是debug模式

必须加上 - g

小提:

vim默认:命令模式

gcc默认:release模式

Linux中形成的可执行程序格式:ELF

在debug发布时,一定会给可执行程序内部添加debug信息

debug形成的可执行程序 > release形成的可执行程序

使用

gdp + 可执行程序

1.打开代码

l (list)

l 0 从0行开始打开代码

2.运行

r (run)

3.打断点

b (breakpoint) + 行号

b 源文件:行号

b 函数 (打在函数入口处)

b 文件名 函数或者行号

4.查看断点

info b

每个断点都有编号

5.删除断点

d(deletepoint)+ num(断点编号)

6.禁用和开启断点

disable + Num 禁用断点

enable + Num 开启断点

7.逐过程(把函数当成一条语句)

n

8.逐语句

s

9.查看变量细节

display +变量/变量地址(常显示)

undisplay +变量/变量地址(关闭常显示)

10.查看变量细节

p +变量/变量地址

11.运行

until 运行到指定位置

finish 运行到当前函数结尾

c 从一个断点运行到另一个断点

12.查看调用堆栈

bt

13.更改变量的值

set var i(变量)= ?

14.查看所有变量

info locals

相关推荐
码农小韩6 分钟前
Linux应用开发(八)——TCP/IP网络编程基础
linux·嵌入式软件开发·linux操作系统·嵌入式操作系统·linux网络编程·linux应用
迷途之人不知返14 分钟前
【进程】-5-进程优先级
linux
名字还没想好☜41 分钟前
Docker 网络实战:bridge/host/none/自定义网络、容器互通与端口映射踩坑
运维·docker·kubernetes
fengyehongWorld43 分钟前
Linux squid搭建基础代理服务器
linux·运维·服务器
木白CPP1 小时前
Linux DMA驱动详解(二)-----DMA的使用者
java·linux·运维
赵民勇1 小时前
systemd-socket-activate命令详解
linux·运维
跨境小彭2 小时前
Temu运营避坑:制造地点信息填写规范、后果及批量实操教程
大数据·运维·自动化·跨境电商·temu
Cx330❀2 小时前
【Linux网络】网络层 IP 协议:从网段划分到内核源码解析
大数据·linux·服务器·网络·tcp/ip·性能优化·langchain
企鹅的蚂蚁2 小时前
LubanCat RK3588 实时 Linux 开发(七):YT6801 PCIe 网卡驱动移植与 vermagic 排查
linux·rk3588·linux驱动·yt6801·pcie网卡·vermagic
DYWorker0012 小时前
Linux驱动子系统:DMA子系统 —— Consumer和Provider(006)
linux·驱动开发