#要使用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 设置变量的值
*************************************************************************************************
gdb——基本指令
最新推荐文章于 2025-04-03 10:02:25 发布