• ELF文件之四——使用链接脚本-2个函数-data


    main.c

    int test = 1;
    
    int main()
    {
        return 0;
    }
    
    int add()
    {
        return 0;
    }
    View Code

    main.o

    反汇编可以看到多了.text节的反汇编,存储的是全局变量的初始化数值

    main.o对比,text段后面多了00 00 00 01,这是data段,文件偏移为0x5c

    节头表的data节,偏移为5c,大小为4

     symbol table多了test,节头表索引为2,即data节,数值为0(猜测该数值为地址,一会通过elf文件求证)

     main.elf

    data节大小变为4,bss仍然没有

    程序头的项目2的文件大小和内存大小都变为4了。

    同时这里多了一个section到segment的映射,有两个segment,推测为RO,RW?第一个包含的section有text,第二个包含的section有data。

    elf文件同时也多了全局变量的初始数值

    test的数值为7000 0000,所以,符号表里的数值为符号的地址。

  • 相关阅读:
    supervisor启动错误解决(二)
    删除文件某行
    离线安装
    docker中/var/lib/docker目录迁移
    if else 使用
    Django views函数添加装饰器
    Netty4
    Fast DFS(二)
    Fast DFS(一)
    SpringBoot和app之间跨域问题
  • 原文地址:https://www.cnblogs.com/yanhc/p/12288000.html
Copyright © 2020-2023  润新知