GDB如何自动查询指定地址所属程序段 无需手动逐段比对
GDB查询给定地址所属程序段的解决方法
确实有现成的命令可以直接完成查询,无需手动逐段核对:
- 方案1:使用
info sym <目标地址>命令
该命令会直接返回目标地址关联的符号、所属程序段信息,是最常用的快速查询方式。
示例:查询地址0x401230所属段,直接输入info sym 0x401230即可,输出会直接标识该地址属于.text/.data/.bss等对应段,同时会给出关联的函数、变量名等附加信息。 - 方案2:使用带过滤参数的段查询命令
你已经在用的maintenance info sections命令支持通配符过滤,只要在目标地址前加*作为匹配参数,GDB会直接筛选出包含该地址的段条目,不会输出全部段信息。
示例:输入maint info sections *0x401230,会直接返回匹配段的起止地址、段名、读写执行权限、所属文件等完整属性。
如果需要频繁使用该功能,可以将自定义命令写入GDB配置文件.gdbinit实现快速调用:
define findsec maint info sections *$arg0 end document findsec 查询指定地址所属的程序段 用法:findsec <目标地址> end
配置完成后后续直接输入findsec 0x401230即可完成查询。
内容的提问来源于stack exchange,提问作者anon
相关产品推荐
相关产品推荐

