linux中的gdb调试
1,何为调试
程序执⾏时,可以查看到程序执⾏过程中的任意信息,且能够按照我们需要的⽅ 式进⾏执⾏ 就是让程序⼀步⼀步的进⾏执⾏,跟踪程序的执⾏过程。⽐如:可以让程序 在没有执⾏完的情况下,停留在某条语句位置,查看⽐如变量值,内存内 容,查看到程序到底执⾏了哪些代码,可以监控到程序的每个执⾏细节。
2,调试功能的操作
2.1, 调试功能的打开
输⼊ gdb 加 程序⽂件名(编译后的可执⾏程序)
2.2,调试功能的退出
在>>>后输入“q”即可退出调试功能
2.3,进入调试
在打开调试功能后同时按住ctrl+x+a 进入如下所示界面
输入start
3,gdb常用的命令
命令 | 作用 |
b (break) xxx | xxx:断点位置,设置断点:在源代码中指定的某⼀⾏设置断点,让 程序执⾏到当前断点位置就暂停执⾏ |
r (run) | 执⾏被调试的程序,其会⾃动执⾏到第⼀个断点处(如果没有断点 则执⾏到程序结束位置),就暂停执⾏(⼀般⽤于开始执⾏,或重 新运⾏) |
c (co ntin ue) | 当程序在某⼀个断点暂停时,使⽤这个命令就继续执⾏,直到下⼀ 个断点或程序结束 |
p (pr int) xxx | xxx:变量,表⽰打印当前这个变量的值 |
n (ne xt) | 令程序执⾏⼀⾏代码,执⾏当前⾏的代码 |
s (ste p) | 执⾏⼀步代码,通常也是执⾏⼀⾏,但是如果这⼀⾏是函数,则会 进⼊函数执⾏ |
info xx | 查看信息,⽐如断点和局部变量:info b info locals |
x x1 x2 | 查看指定内存内容,x1:要查看的空间⼤⼩,x2内存地址 |
l (list ) | 查看源代码,表⽰从当前执⾏的代码位置查看 |
watch xxx | xxx:变量或表达式,要监控的变量或表达式实时情况 |
delete xx | xx:断点号,删除某个断点号 |
start | 执⾏到main函数的第⼀句 |