标签:linu linux turn 根据 链接 用户 std libc global
逻辑地址:指程序使用的地址,该地址处于用户地址空间。
物理地址:指机器内存的地址,地址处于主存储器地址空间,对应主存储器存储单元。
以一个C语言程序的编译运行为例。
环境
gcc version 8.3.0 (Raspbian 8.3.0-6+rpi1)
Target: arm-linux-gnueabihf
#include <stdio.h>
int global_value_a = 0x10;
int global_value_b = 0x10;
int main()
{
printf ("&global_value_a=%p,main=%p\n",
&global_value_a,main);
return 0;
}
编译
gcc test.c -c -o test.o
gcc test.o -o a.out
> ./a.out
&global_value=0x21028,main=0x10408
> nm test.o
00000000 D global_value_a
00000004 D global_value_b
00000000 T main
U printf
> nm a.out
...省略部分...
00021028 D global_value_a
0002102c D global_value_b
w __gmon_start__
000102c8 T _init
00020f14 t __init_array_end
00020f10 t __init_array_start
000104a4 R _IO_stdin_used
00010498 T __libc_csu_fini
00010438 T __libc_csu_init
U __libc_start_main@@GLIBC_2.4
00010408 T main
...省略部分...
标签:linu linux turn 根据 链接 用户 std libc global
原文地址:https://www.cnblogs.com/amazing-1/p/13906838.html