Linux 下如何获得 C 程序的代码段,数据段等各段地址.

Buddy.Zhang 2016-02-23 03:53:59
基于 Linux,如何在编写代码来获得该 C 程序的数据段地址和代码段地址?
...全文
931 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Buddy.Zhang 2016-02-24
  • 打赏
  • 举报
回复
引用 11 楼 yuelengdihai 的回复:
引用 6 楼 Z_R_Z_798205 的回复:
[quote=引用 4楼yuelengdihai 的回复:]打log出来看就行了
我换个方式问,如何获得 .text .data 和 .init 的值
Linux中可执行文件的格式是ELF,其实编译过程中的中间文件*.o文件、动态共享库*.so文件也是ELF格式的。在链接器看来,当它通过*.o或者配合*.so文件来生成可执行文件时,它对ELF格式的文件以链接视图(Linking View)进行看待。也就是说链接器以Section的形式来对待和处理ELF文件,诸如我们常见说的代码段(.text)、数据段(.data和.bss)等待概念 readelf –h命令能够可以查看一个EFL文件的头部信息[/quote] 我在 C 源码中这样编写来获得 .text .data 和 .init 的值 extern char _text, _data,_init; 通过上面的代码可以获得对应的值
cocoabird 2016-02-24
  • 打赏
  • 举报
回复
引用 6 楼 Z_R_Z_798205 的回复:
引用 4楼yuelengdihai 的回复:
打log出来看就行了
我换个方式问,如何获得 .text .data 和 .init 的值
Linux中可执行文件的格式是ELF,其实编译过程中的中间文件*.o文件、动态共享库*.so文件也是ELF格式的。在链接器看来,当它通过*.o或者配合*.so文件来生成可执行文件时,它对ELF格式的文件以链接视图(Linking View)进行看待。也就是说链接器以Section的形式来对待和处理ELF文件,诸如我们常见说的代码段(.text)、数据段(.data和.bss)等待概念 readelf –h命令能够可以查看一个EFL文件的头部信息
cocoabird 2016-02-24
  • 打赏
  • 举报
回复


引用 6 楼 Z_R_Z_798205 的回复:
引用 4楼yuelengdihai 的回复:
打log出来看就行了
我换个方式问,如何获得 .text .data 和 .init 的值

Buddy.Zhang 2016-02-24
  • 打赏
  • 举报
回复
引用 8 楼 jianwen0529 的回复:
这应该是操作系统和文件的东西了吧 系统加载可执行文件到哪里,如何各段在可执行文件中的偏移?
这个问题是在 linux 上 gcc 编译器 ld链接器, .text .data .init 的值应该是由链接器设定,我现在的问题是如何获得这些值.
幻夢之葉 2016-02-24
  • 打赏
  • 举报
回复
这应该是操作系统和文件的东西了吧 系统加载可执行文件到哪里,如何各段在可执行文件中的偏移?
Buddy.Zhang 2016-02-24
  • 打赏
  • 举报
回复
引用 4楼yuelengdihai 的回复:
打log出来看就行了
我换个方式问,如何获得 .text .data 和 .init 的值
Buddy.Zhang 2016-02-24
  • 打赏
  • 举报
回复
引用 3楼nadleeh 的回复:
[quote=引用 楼主 Z_R_Z_798205 的回复:] 基于 Linux,如何在编写代码来获得该 C 程序的数据段地址和代码段地址?
楼主忘记 ./ 装载器了,应用程序运行时都是动态的[/quote]我换个方式问,如何获得 .text .data 和 .init 的值
Buddy.Zhang 2016-02-24
  • 打赏
  • 举报
回复
引用 1楼赵4老师 的回复:
使用嵌入汇编? 搜“gcc-inline-asm.pdf”
我换个方式问,如何获得 .text .data 和 .init 的值
cocoabird 2016-02-24
  • 打赏
  • 举报
回复
打log出来看就行了
nadleeh 2016-02-24
  • 打赏
  • 举报
回复
引用 楼主 Z_R_Z_798205 的回复:
基于 Linux,如何在编写代码来获得该 C 程序的数据段地址和代码段地址?
楼主忘记 ./ 装载器了,应用程序运行时都是动态的
Buddy.Zhang 2016-02-23
  • 打赏
  • 举报
回复
引用 1楼赵4老师 的回复:
使用嵌入汇编? 搜“gcc-inline-asm.pdf”
应该和链接器有关
赵4老师 2016-02-23
  • 打赏
  • 举报
回复
使用嵌入汇编? 搜“gcc-inline-asm.pdf”

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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