2 zhenhua 329 zhenhua_329 于 2016.05.04 14:17 提问

gdb找到一个地址对应的标志符或者符号

我想把一个地址转化为其对应的符号。
在gdb下,图片说明
可以打印出符号的值和地址值,那如果我目前查看反汇编代码时,得到了一个地址值是0xb7129678,那么怎么反过来得到这个地址对应的是CapListCount这个符号呢?
谢谢。

我发现几个命令是无效的。或者说我没有正确使用这几个命令图片说明

2个回答

zhenhua_329
zhenhua_329   2016.05.05 09:09
已采纳

可以查看到符号表中的地址转换,堆栈上的无法由地址转换过来

NK_test
NK_test   Rxr 2016.05.04 15:00

使用examine命令(简写是x)来查看内存地址中的值。x命令的语法如下所示:
 x/
具体可以查看 http://blog.csdn.net/shamoqiuyin/article/details/7918784

zhenhua_329
zhenhua_329 请看清楚问题再回复,我要的是地址相对应的符号或者说标志符,不是地址中的值,
大约 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
GDB 查看指定地址的内容
你可以使用examine命令(简写是x)来查看内存地址中的值。x命令的语法如下所示: x/ n、f、u是可选的参数。 n 是一个正整数,表示显示内存的长度,也就是说从当前地址向后显示几个地址的内容。 f 表示显示的格式,参见上面。如果地址所指的是字符串,那么格式可以是s,如果地十是指令地址,那么格式可以是i。 u 表示从当前地址往后请求的字节数,如果不指定的话,GDB默认是
gdb查看内存地址和栈中的值—查看虚函数表、函数地址
http://blog.sina.com.cn/s/blog_605f5b4f0101ey1q.html  gdb查看指定地址的内存地址的值:examine 简写 x-----使用gdb> help x 来查看使用方式      x/ (n,f,u为可选参数) n: 需要显示的内存单元个数,也就是从当前地址向后显示几个内存单元的内容,一个内存单元的大小由后面的u定义 f:显示格式  
gdb 的反汇编对应列出源码
gdb 的反汇编命令原来可以列出源码对应的行数和二进制字节了啊 之前都是用info line 来看函数汇编对应的源码行数,偶尔还用二进制编辑工具看字节码(gdb也有 x命令) 原来不知道上面时候有了这两个选项都不知道啊!  看看下面的初始化局部字符串数组原来是这样做的阿^_^ (gdb) help disassemble  Disassemble a specified secti
GDB符号调试器(二)
使用观察窗口 查看栈信息 查看源代码
GDB符号调试器(一)
GDB简单使用
gdb远程调试--动态加载符号文件
宿主机 使用gdbserver  --attach 0.0.0.0:port(端口任意指定)  pid 客户端  1、执行gdb (使用交叉编译环境的gdb arm-linux-gdb)  2、在gdb命令行中  target remote  ip:port 这时候可能要调试的模块没有符号表,需要动态加载符号表,适合调试没有符号信息的设备环境 3、add-symbol-file
GDB指令——读取符号表
GDB指令——读取符号表 -symbols -s 从指定文件file中读取符号表。 -se file 从指定文件file中读取符号表信息,并把他用在可执行文件中。 -core -c 调试时core dump(核心转储)的core文件。 -directory -d 加入一个源文件的搜索路径。默认搜索路径是环境变量中PATH所定义的路径。
GDB查看指定内存地址的内容——指令x
Overview:![examine指令参数](http://img.blog.csdn.net/20170629170625941?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGFpZmVuZ19ndQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEa
gdb显示结构体
在gdb设置:set print pretty on   ===========================其他 七、设置显示选项     GDB中关于显示的选项比较多,这里我只例举大多数常用的选项。     set print address     set print address on         打开地址输出,当程序显示函数信息时,GDB会显出函数的参数地址。
找到一个或多个多重定义的符号解决方案
fatal error LNK1169: 找到一个或多个多重定义的符号 造成此问题的原因是由于一个函数或者变量在一个.h中定义,然后这个.h又包括在多个其它文件中 从而造成 变量或者函数(往往是全局的)的多重定义 个人找到一个较好的方法是: 既然函数变量或者函数是全局的,则其不属于任何一个类,那么就可以把它定义成static的。 static不属于任何实例