gdb --help仅显示顶层命令行参数(如--args、-p、-c),不包含break、print等调试会话内命令;进入gdb后执行help all才能列出全部内置命令,按功能分组并附简要说明,建议配合less查看;help不带参数仅显示帮助系统用法,help 命令名可查具体命令细节,而tab补全(如br→break)是快速定位命令的实用方式。

gdb --help 能看到哪些命令入口
gdb --help 只列出最顶层的命令行参数(比如 --args、-p、-c),不展示调试会话内的交互命令。它帮你确认启动方式是否正确,但进不了调试状态就看不到 break、print 这类核心指令。
进入 gdb 后查所有命令用 help all
启动后输入 help all 才是真正列出全部内置命令的可靠方式。它按功能分组(如 “running”,“stack”,“data”),每条命令附带一行简要说明。注意:输出很长,建议配合 less 或重定向查看:
help all | less
常见遗漏点:
-
help不带参数只显示帮助系统本身用法,不是命令列表 -
help break这种写法能查单个命令细节,但必须知道命令名才有效 - 部分命令支持缩写(如
bt代替backtrace),help all列出的是全称,缩写需靠经验或 tab 补全试探
tab 补全比 help all 更快定位常用命令
在 (gdb) 提示符下直接敲几个字母再按 Tab,gdb 会自动列出所有匹配命令。例如:
- 敲
br<tab></tab>→ 补全为break - 敲
in<tab></tab>→ 显示info、inferior、init-file等多个选项 - 敲
pr<tab></tab>→ 补全为print
这个机制对记不清完整命令名时特别实用,而且能暴露一些冷门但有用的命令(比如 ptype 查类型、exploit 在极少数插件中存在,但标准 gdb 没有)。
为什么 info commands 不是标准命令
有人误以为 info commands 类似 shell 的 compgen -c,但 gdb 并不提供这个命令。尝试执行会报错:Undefined info command: "commands". Try "help info". 正确路径只有 help all 或 tab 补全。另外,show version 和 gdb -v 虽然能确认当前环境,但和命令发现无关——版本差异主要影响新命令支持(比如较新 gdb 支持 dashboard 插件命令),不改变基础命令集。











