gdb调试工具常用命令的使用

简介
一款调试工具

使用
使用gdb调试工具时,在gcc打包为二进制文件时需要指定-g参数表示在该程序中添加调试语句
当编译好后,执行gdb 需要被调试的程序

list / l
列出被调试程序的源代码,根据源码向指定位置设置断点
显示出源代码的下一页使用 list / l

break / b
设置断点:break / b 行号
设置条件断点:b 行号 if 条件当满足条件时才会执行,一般用在循环/递归语句

run / r
运行程序
不用设置断点直接执行,如果遇到程序出现错误时会显示出错的行数,可快速找到错误
该命令还可以在后面添加参数,每个参数以空格分开,它表示向main函数中传入参数

n (next) / S (step)
n/S 表示执行下一条指令
它们的区别在于执行函数的时候,当使用n来执行的时候会直接越过函数不会进入到函数内部执行而是直接执行到下一行,而S则反之
在调试时可以按需选择如何使用这两个命令
gbd调试时有一个小毛病就是在进入到函数内部时如果是库函数就会报找不到那个文件所以在使用时要注意执行遇到库函数时要使用n来执行

p(print)
显示指定变量的值p 变量名

continue
继续执行断点后续指令

quit
退出当前调试

finish
结束当前函数调用,回到调用点

set args
set args args1 args2 ..
在执行程序前设置命令行参数:

info b
查看gdb调试表中调试的内容

ptype
查看变量类型:ptype 变量

bt(backtrace)
列出当前程序正存活着的栈帧
它通常与frame配合使用

frame
根据栈帧编号,切换栈桢
它通常与bt配合使用

display & undisplay
设置跟踪变量display
取消跟踪变量undisplay,需要使用被跟踪变量的编号

知识点
栈帧: 随着函数调用而在stack上开辟的一片内存空间, 用于存放函数调用时产生的局部变量和临时值

你可能感兴趣的:(gdb调试工具常用命令的使用)