【发布时间】:2015-05-29 16:43:53
【问题描述】:
我正在开发 Ubuntu 14.04 LTS。
我有一个从file.c 编译的可执行文件exec。 file.c 使用静态库中的函数。例如,假设fubar() 是file.c 中使用的静态库的函数。
这是我注意到的。
-
nm exec | grep fubar给出一定的值。
(在我的系统和我的可执行文件中,0808377f) -
gdb ./exec然后break fubar给出不同的值。
(在我的系统和我的可执行文件中,0x8083785)
当我对另一个可执行文件执行类似操作时(exec1 从file1.c 编译,它为两个命令输出相同的值)。
这两个命令都应该输出相同的虚拟地址。不是吗?我显然错过了一些东西。有人可以解释到底发生了什么吗?这两个命令有什么区别。
【问题讨论】:
标签: gdb virtual-address-space nm