日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

cat /proc/maps 进程内存映射【转】

發布時間:2025/3/20 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 cat /proc/maps 进程内存映射【转】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自:http://blog.csdn.net/fisher_jiang/article/details/5063852

proc/<PID>/maps
查看進程的虛擬地址空間是如何使用的。
該文件有6列,分別為:
地址:庫在進程里地址范圍
權限:虛擬內存的權限,r=讀,w=寫,x=,s=共享,p=私有;
偏移量:庫在進程里地址范圍
設備:映像文件的主設備號和次設備號;
節點:映像文件的節點號;
路徑: 映像文件的路徑
每項都與一個vm_area_struct結構成員對應,
范例:
應用程序的正文段(權限為r-xp)從0x08048000到0x08049000,大小為4096;數據段從0x08049000到0x0804a000,大小為1KB。該應用程序使用了兩個庫:lib和libc。Libc 的正文段從0x00391000到0x004b4000,大小為1164KB;數據段從0x004b5000到0x004b8000,大小為12KB.
Ld 的正文段從00378000到0038d000,大小為84KB;數據段從0x0038e000到0x0038f000,大小為4KB。該應用程序所使用的庫所占的虛擬空間的大小從0x4b8000到0x378000,大小為1280KB,其實真正大小為VmLib(1251KB);因為是按頁分配,每頁大小為4KB。

[root@localhost ~]# cat /proc/7114/maps
08047000-080dc000 r-xp 00000000 03:06 884901 /bin/bash
080dc000-080e3000 rwxp 00094000 03:06 884901 /bin/bash
080e3000-08129000 rwxp 080e3000 00:00 0 [heap]
4d575000-4d58a000 r-xp 00000000 03:06 736549 /lib/ld-2.3.4.so
4d58a000-4d58b000 r-xp 00015000 03:06 736549 /lib/ld-2.3.4.so
4d58b000-4d58c000 rwxp 00016000 03:06 736549 /lib/ld-2.3.4.so
4d58e000-4d6b1000 r-xp 00000000 03:06 736550 /lib/tls/libc-2.3.4.so
4d6b1000-4d6b2000 r-xp 00123000 03:06 736550 /lib/tls/libc-2.3.4.so
4d6b2000-4d6b5000 rwxp 00124000 03:06 736550 /lib/tls/libc-2.3.4.so
4d6b5000-4d6b7000 rwxp 4d6b5000 00:00 0
4d6de000-4d6e0000 r-xp 00000000 03:06 736552 /lib/libdl-2.3.4.so
4d6e0000-4d6e2000 rwxp 00001000 03:06 736552 /lib/libdl-2.3.4.so
4d807000-4d80a000 r-xp 00000000 03:06 736567 /lib/libtermcap.so.2.0.8
4d80a000-4d80b000 rwxp 00002000 03:06 736567 /lib/libtermcap.so.2.0.8
b7bf2000-b7c1e000 r-xp 00000000 03:06 881337 /usr/lib/gconv/GB18030.so
b7c1e000-b7c20000 rwxp 0002b000 03:06 881337 /usr/lib/gconv/GB18030.so
b7c20000-b7c26000 r-xs 00000000 03:06 881502 /usr/lib/gconv/gconv-modules.cache
b7c26000-b7d2f000 r-xp 02197000 03:06 852489 /usr/lib/locale/locale-archive
b7d2f000-b7f2f000 r-xp 00000000 03:06 852489 /usr/lib/locale/locale-archive
b7f2f000-b7f38000 r-xp 00000000 03:06 734450 /lib/libnss_files-2.3.4.so
b7f38000-b7f3a000 rwxp 00008000 03:06 734450 /lib/libnss_files-2.3.4.so
b7f3a000-b7f3c000 rwxp b7f3a000 00:00 0
b7f51000-b7f52000 rwxp b7f51000 00:00 0
bfc3d000-bfc52000 rw-p bfc3d000 00:00 0 [stack]
ffffe000-fffff000 ---p 00000000 00:00 0 [vdso]
[root@localhost ~]#

參數 解釋
address: 0085d000-00872000 虛擬內存區域的起始和終止地址文件所占的地址空間
perms:rw-p 權限:r=read, w=write, x=execute, s=shared, p=private(copy on write)
offset: 00000000 虛擬內存區域在被映射文件中的偏移量
dev: 03:08 文件的主設備號和次設備號
inode: 設備的節點號,0表示沒有節點與內存相對應
name: /lib/ld-2.3.4.so 被映射文件的文件名

各共享庫的代碼段,存放著二進制可執行的機器指令,是由kernel把該庫ELF文件的代碼段map到虛存空間;
各共享庫的數據段,存放著程序執行所需的全局變量,是由kernel把ELF文件的數據段map到虛存空間;
用戶代碼段,存放著二進制形式的可執行的機器指令,是由kernel把ELF文件的代碼段map到虛存空間;
用戶數據段之上是代碼段,存放著程序執行所需的全局變量,是由kernel把ELF文件的數據段map到虛存空間;
用戶數據段之下是堆(heap),當且僅當malloc調用時存在,是由kernel把匿名內存map到虛存空間,堆則在程序中沒有調用malloc的情況下不存在;
用戶數據段之下是棧(stack),作為進程的臨時數據區,是由kernel把匿名內存map到虛存空間,棧空間的增長方向是從高地址到低地址。

























本文轉自張昺華-sky博客園博客,原文鏈接:http://www.cnblogs.com/sky-heaven/p/5660291.html,如需轉載請自行聯系原作者

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的cat /proc/maps 进程内存映射【转】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。