如何生成符号表?

小魔菇 2010-06-08 04:32:28
gcc 加上那个参数能生成一些符号表信息呢?
我需要得到可执行文件中的函数对应的虚拟地址信息

...全文
698 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sourceid 2010-06-13
  • 打赏
  • 举报
回复
我猜我知道原因了.贴一下你是怎样ld的?
sourceid 2010-06-12
  • 打赏
  • 举报
回复
不可能一个符号都没有吧?贴一下
# ld -v
# readelf -s t_sym

t_sym是你的可执行文件.
小魔菇 2010-06-12
  • 打赏
  • 举报
回复
GNU ld version 2.17.50.0.6-2.el5 20061020
确实没有
我在代码中有用到一些汇编 会不会是因为这个原因呢?
brookmill 2010-06-09
  • 打赏
  • 举报
回复
刚试了一下,不加任何选项,直接gcc test.c
这样生成的a.out用readelf -s也能看到函数的地址。

如果用gcc -g test.c
符号表会多出一些内容
brookmill 2010-06-09
  • 打赏
  • 举报
回复
用readelf命令可以直接察看可执行文件。
readelf -s a.out 查看符号表
readelf -a a.out 查看所有信息
小魔菇 2010-06-09
  • 打赏
  • 举报
回复
我也用readelf -s查了一下 说是没有符号表

我是这样编译我的可执行文件的

先用gcc -c -g -ggdb 在各个子目录下生成.o文件
然后把很多的.o文件用ld生成一个可执行文件
单独的.o文件可以查看的到符号表
但是最终的那个可执行文件就没有符号表 是不是ld也要设置什么选项之类的?
Boover 2010-06-08
  • 打赏
  • 举报
回复
gcc -ggdb

23,217

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧