应用程序中各区域的内存地址分布情况
发布时间
阅读量:
阅读量
众所周知,当一个进程开始执行后,其代码段、数据段、堆以及栈等部分均会分散在虚拟地址空间的不同区域。对于ARM与MIPS架构而言,其内存布局大致如下所示:

需要首先明确的是,此处所讨论的均为虚拟地址空间,具体而言,针对32位系统而言,其地址范围为0至4G;此外,在进程内部,每个线程所对应的栈空间以及专属变量均具有独立性,而代码段、只读数据段、动态库代码段以及堆空间则为所有线程所共同使用。
我们可以通过访问/proc目录下的maps文件,来获取某一进程主线程所对应的虚拟地址各区域的分布信息。
root@robdev:~# cat /proc/12443/maps
00008000-00009000 r-xp 00000000 1f:07 40 /root/procmap
00010000-00011000 rw-p 00000000 1f:07 40 /root/procmap
01c55000-01c56000 rw-p 00000000 00:00 0 [heap]
全部评论 (0)
还没有任何评论哟~
