linus调试器---gdb的操作介绍

目录

一.背景

二.gdb的常用的操作介绍

小技巧:gdb会记住上一次的命令,按回车即可打出上次的命令。

1.看代码

2.打断点

3.删断点

4.禁用与开启断点

5.查看断点信息

6.调试

7.调试

8.查看变量

9.运行至某行

10.打印变量值

11.从一断点直接运行带下一个断点处

12.更改变量值

13.执行到当前函数返回,然后挺下来等待命令

14.退出gdb


一.背景

程序的发布方式有两种,debug模式和release模式

Linux gcc/g++出来的二进制程序,默认是release模式

要使用gdb调试,必须在源代码生成二进制程序的时候, 加上 -g 选项

如:有一文件test.c, 正常我们形成可执行程序是 gcc -o mybin test.c

此操作形成的mybin是release模式,如果想要形成可执行程序mybin是debug模式则要写成

gcc -o mybin test.c -g

二.gdb的常用的操作介绍

小技巧:gdb会记住上一次的命令,按回车即可打出上次的命令。

1.看代码

l 行数 。一般用 l 0来看代码

效果:

2.打断点

b 行数/b 函数名/ b 文件名:行数/b 文件名:函数名。每一个断点都有编号,每次编号只出现一次。

3.删断点

d 断点编号

4.禁用与开启断点

enable 断点编号:开启该断点编号的断点

disable 断点编号:禁用该断点编号的断点

5.查看断点信息

info b

6.调试

n:逐过程(如VS的F10)

s:逐语句(会进函数,如VS的F11)

7.调试

r

8.查看变量

display 变量名/变量地址。此操作后,每次 n/s 都会打印 变量名/变量地址,要取消则:

undisplay 变量名/变量地址。

9.运行至某行

until 行数

10.打印变量值

p 变量名

11.从一断点直接运行带下一个断点处

c

12.更改变量值

set var 变量名 = 想要更改的值/set 变量名 = 想要更改的值

13.执行到当前函数返回,然后挺下来等待命令

finish

14.退出gdb

quit/ctrl+d

相关推荐
剑神一笑5 小时前
Linux pgrep 命令详解:按名称查找进程 PID 的高效方法
linux·运维·chrome
剑神一笑5 小时前
Linux killall 命令详解:按进程名批量终止进程的原理与实践
linux·运维·chrome
日取其半万世不竭9 小时前
iftop、nethogs 和 nload:Linux 服务器网络流量实时监控工具介绍
linux·运维·服务器
mounter6259 小时前
Linux 内核资源管理:控制组(cgroup)的演进与“策略组”新提案
linux·运维·服务器·cgroup·kernel
bksczm9 小时前
文件在磁盘中的存储方式
linux·运维·服务器
L16247610 小时前
OpenSSH 半自动升级方案(独立编译 + 手动迁移 + 重建 systemd 服务)
linux·服务器·ssh
半旧夜夏10 小时前
【保姆级】微服务组件环境搭建(Docker Compose版)
java·linux·spring cloud·微服务·云原生·容器
爱莉希雅&&&11 小时前
zabbix快速搭建和使用
android·linux·数据库·zabbix·监控
z2005093011 小时前
【linux学习】深入理解linux文件I/O,从C标准库到内核态
linux·学习·操作系统
weixin_3077791311 小时前
面向高性能保密计算的定制 Linux 系统构建与自动部署方案
linux·安全·网络安全·性能优化·系统安全