gdb——基本指令

#要使用gdb调试可执行程序,gcc/g++编译时要加上参数[-g]
#gcc/g++ -g 编译时,会把调试信息加进去,例如源码绝对路径
#gdb指令不能加;号
*************************************************************************************************
指令                       全称     作用
*************************************************************************************************
$ gdb -tui                          启动gdb,分屏显示(上半部分源代码,下半部分gdb调试控制台)
                                        --此时,上下方向键滚动源代码,[Ctrl]n、[Ctrl]p翻滚指令记录
$ gdb <app>                         启动gdb,并调试程序<app>

(gdb) help                          help信息
(gdb) file <app>                    载入可执行程序<app>
(gdb) l                    list     列出源码
(gdb) [Enter]                       直接回车,重复执行上一条指令
(gdb) b <line>             break    设置断点,在x行处
(gdb) b <func>             break    设置断点,在函数func第一行处
(gdb) break x.cpp:21                设置断点,在源文件x.cpp的21行处
(gdb) info break                    查看断点信息
(gdb) delete <断点号N>              删除N号断点
(gdb) delete                        删除所有断点
(gdb) r                    run      运行程序,可以加参数
(gdb) n                    next     step over
(gdb) s                             step in
(gdb) c                    continue 继续执行到下一个可用断点或结束
(gdb) p <变量>             print    打印变量的值
(gdb) u                    until    退出循环(光标可能需要停在循环的开头或结尾处)
(gdb) finish                        退出函数
(gdb) x/s <0x...地址>               以字符串的形式显示该地址的值
(gdb) q                    quit     退出gdb

##gdb调试正在运行的程序
##找到进程号
(gdb) attach <PID>                  gdb接管该进程,进程停在某个点
$ gdb <app> <PID>                      --然后可以:l / b / c / n / s / p 等

##gdb设置变量的值
(gdb) set var i=3                   设置变量的值
*************************************************************************************************

猜你喜欢

转载自blog.csdn.net/qq_24243483/article/details/78685268
今日推荐