Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux中共享库的内存映射大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

当我使用时查看进程的内存映射 cat / proc / pid / maps 有这样的条目: 40321000-40336000 r-xp 00000000 b3:15 875 /system/lib/libm.so 40336000-40337000 r--p 00014000 b3:15 875 /system/lib/libm.so 40337000-403380
当我使用时查看进程的内存映射

cat / proc / pid / maps

有这样的条目:

40321000-40336000 r-xp 00000000 b3:15 875        /system/lib/libm.so
40336000-40337000 r--p 00014000 b3:15 875        /system/lib/libm.so
40337000-40338000 rw-p 00015000 b3:15 875        /system/lib/libm.so
40338000-40345000 r-xp 00000000 b3:15 789        /system/lib/libcutils.so
40345000-40346000 r--p 0000c000 b3:15 789        /system/lib/libcutils.so
40346000-40347000 rw-p 0000d000 b3:15 789        /system/lib/libcutils.so
40347000-40355000 rw-p 00000000 00:00 0 
40355000-403bc000 r-xp 00000000 b3:15 877        /system/lib/libmedia.so
403bc000-403bd000 ---p 00000000 00:00 0 
403bd000-403d0000 r--p 00067000 b3:15 877        /system/lib/libmedia.so
403d0000-403d1000 rw-p 0007a000 b3:15 877        /system/lib/libmedia.so
403d1000-403d5000 rw-p 00000000 00:00 0 
403d5000-403d8000 rw-p 00000000 00:00 0

我理解.so表示进程映射的共享库.似乎每个.so有3个条目,他们的权限是
R-XP
[R – P
RW-P

那么我该怎么解释呢?我可以假设r-xp是库的代码部分,因为它具有x(执行)权限吗? r-p和rw-p怎么样,它们是数据部分吗?

空条目怎么样?例如,关于libmedia的最后6个条目有三个空的entires(00:00 0).这些是什么?

403bc000-403bd000 ---p 00000000 00:00 0 
403bd000-403d0000 r--p 00067000 b3:15 877        /system/lib/libmedia.so
403d0000-403d1000 rw-p 0007a000 b3:15 877        /system/lib/libmedia.so
403d1000-403d5000 rw-p 00000000 00:00 0 
403d5000-403d8000 rw-p 00000000 00:00 0

解决方法

是的,但这被称为文本段(存储指令).您还应该注意它没有写入权限,因为它没有.

是的,这些段存储静态/全局变量.然而,恒定的全局变量将被存储到r-p段中,因为它不应该被任何程序修改.

编辑
有关完整信息,您可能需要参以下链接

http://linux.die.net/man/5/proc

大佬总结

以上是大佬教程为你收集整理的linux中共享库的内存映射全部内容,希望文章能够帮你解决linux中共享库的内存映射所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。