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

相关推荐
一直会游泳的小猫26 分钟前
homebrew
linux·mac·工具·包管理
寒秋花开曾相惜35 分钟前
(学习笔记)4.2 逻辑设计和硬件控制语言HCL(4.2.1 逻辑门&4.2.2 组合电路和HCL布尔表达式)
linux·网络·数据结构·笔记·学习·fpga开发
狂奔的sherry41 分钟前
一次由 mount 引发的 Linux 文件系统“错觉”
linux·运维·服务器
小黑要努力1 小时前
智能音箱遇到的问题(一)
linux·运维·git
ch3nyuyu1 小时前
静态库和动态库的制作
linux·运维·开发语言
一口Linux2 小时前
Linux C编程 | 从0实现telnet获取程序终端控制权
linux·运维·c语言
willhuo2 小时前
Certbot工具在CentOS 7.9上申请和配置SSL证书完整教程
linux·centos·ssl
zhangrelay3 小时前
三分钟云课实践速通--大学物理--python 版
linux·开发语言·python·学习·ubuntu·lubuntu
风翼靓崽4 小时前
linux命令杂记 - 杂乱无章
linux·运维·服务器
handler014 小时前
Linux 进程探索:从 PCB 管理到 fork() 的写时拷贝
linux·c语言·c++·笔记·学习