【Linux调试器gdb的使用】gdb的常用命令

目录

一.前言

二.debug和release

三.常用命令

1.查看代码

2.更改显示的代码行数 

3.开始调试 

4.设置断点

5.代码执行

6. 查看变量

7.更改变量的值


一.前言

LInux系统下调试代码用到的工具是gdb,命令行的形式,肯定没有VS的调试器好用,毕竟人家是图形化界面非常灵活,而gdb还要输入命令。但gdb也算是Linux系统下为数不多的好用的调试器了,gdb的命令有很多,但只需掌握常用的几个够用就行了。

二.debug和release

一份代码有两种编译模式,debug和release,debug模式生成的可执行程序中包含调试信息,而release中不包含。

所以release版的可执行程序比debug版要小,给用户使用的也是release版,另外,release模式在编译时编译器还会做一些优化,所以有时候一个程序的debug版没有问题,但release却有问题,是因为编译器的自作聪明,好心办了坏事。

编译器gcc/g++默认使用release模式编译代码

但release版是没有调试信息的,当执行以下命令时

gdb mybin   (mybin是gcc用编译形成的可执行程序)

要想调试,必须得到debug版的可执行程序

gcc code.c -o mybin -g

-g选项表示用debug模式编译代码

三.常用命令

1.查看代码

用gdb打开可执行程序,源代码没有显示出来

【Linux调试器gdb的使用】gdb的常用命令_第1张图片

可以使用如下命令查看代码

l(list) 10

功能:查看第10行的源代码

l function 

功能:查看指定函数的源代码(全局搜索,可不指定文件)

l file:10 

功能:查看第file文件的第10行的代码

2.更改显示的代码行数 

set listsize 20

功能:把每次显示源代码的行数改为20行(默认是10行)

3.开始调试 

 r(run)

功能:开始调试,遇到断点就停下,如果没有断点,直接跑完程序

4.设置断点

b(break) 10

功能:在第10行设置一个断点

b file:10

功能:在file文件的第10行设置一个断点

b func

功能:在fun行数的入口处设置一个断点(全局搜索,可不指定文件)

info b 

功能:查看断点信息

d(delete) num   (num是断点的编号) 

功能:删除断点(d后面只能跟断点的编号,不能是行号和函数名)

disable num  (num是断点编号) 

功能:禁用断点

 

enable num  (num是断点编号)

功能:启用断点

 

5.代码执行

n

功能:逐过程,相当于VS的F10

s

功能:逐语句,相当于VS的F11 

 c(continue)

功能:运行到下一个断点处停下

 until  10

功能:运行到第10行停下

 finish

功能:运行完当前函数就停下

 

6. 查看变量

p  n

功能:显示变量n的值

display  n

功能:长期显示变量n的值 

undisplay  num  (num是长显示变量的编号)

功能 :取消长期显示变量n的值 

info i

功能:查看当前的局部变量的值 

bt

功能:查看调用堆栈 

7.更改变量的值

set var i = num

功能:把变量i的值更改为num 

你可能感兴趣的:(linux,运维,服务器)