gdb调试命令
命令行传参
使用 gdb 调试 1$ gdb app # 通过gdb给应用程序设置命令行参数 2(gdb) set args 11 22 33 44 55 # 查看设置的命令行参数 3(gdb) show args Argument list to give program being debugged when it is started is "11 22 33 44 55".
gdb中启动程序
# 两种方式 # 方式1: run/r (gdb) run //会执行到程序结束
# 方式2: start (gdb) start
(gdb) start //执行到main函数第一行
查看代码
(gdb) list //默认查看main函数所在的文件
# 列值这行号对应的上下文代码, 默认情况下只显示10行内容
(gdb) list 行号
# 显示这个函数的上下文内容, 默认显示10行
(gdb) list 函数名
#切换文件
# 切换到指定的文件,并列出这行号对应的上下文代码, 默认情况下只显示10行内容
(gdb) l 文件名:行号
# 切换到指定的文件,并显示这个函数的上下文内容, 默认显示10行
(gdb) l 文件名:函数名
#设置显示的行数
(gdb) set listsize 行数
断点操作
# 在当前文件的某一行上设置断点
# break/b
(gdb) b 行号
(gdb) b 函数名 //停止在函数的第一行
# 在非当前文件的某一行上设置断点
(gdb) b 文件名:行号
(gdb) b 文件名:函数名 # 停止在函数的第一行
# 必须要满足某个条件, 程序才会停在这个断点的位置上
(gdb) b 行数 if 变量名==某个值
# 查看设置的断点信息
(gdb) i b #或者info break
# 删除断点举例:
(gdb) d 1 # 删除第1个断点
(gdb) d 2 4 6 # 删除第2,4,6个断点
# 举例, 删除第1到第5个断点
(gdb) d 1-5
# 设置某一个或者某几个断点无效
(gdb) dis 断点1的编号 [断点2的编号 ...]
# 输出变量值
(gdb) p 变量名
# 如果变量是一个整形, 默认对应的值是以10进制格式输出,其它格式将fmt设为相应字符
(gdb) p/fmt 变量名
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~