【发布时间】:2015-07-08 13:16:45
【问题描述】:
我们只关注Rect_IsEmpty() 函数。
nm 命令给了我这个输出:
(...)
00021af0 T Rect_IsEmpty
(...)
另一方面,当我启动 gdb 并查看此函数的地址时,我得到:
(gdb) info address Rect_IsEmpty
Symbol "Rect_IsEmpty" is at 0x8057c84 in a file compiled without debugging.
谁能解释一下为什么这些地址不一样? gdb 从哪里得到这个地址?
【问题讨论】:
-
库中的偏移量与内存中的偏移量无关。
-
"The nm command give me ..." -- 请告诉你正在运行什么
nm(可能不在你在GDB下运行的可执行文件上),所以你的问题可以得到解答正确(当前的两个答案都是完全虚假的)。 -
@EmployedRussian 你不能回答 3 种可能的情况吗:目标文件、共享目标文件、可执行文件?是什么阻止了你?大而正确的答案是好的。
-
@EmployedRussian 我在链接到我的可执行文件的 *.so 库上运行它。