当前位置: 首页 > 编程日记 > 正文

使用cat /proc/进程id/maps 查看进程内存映射

proc/<PID>/maps
查看进程的虚拟地址空间是如何使用的。
该文件有6列,分别为:
地址:库在进程里地址范围
权限:虚拟内存的权限,r=读,w=写,x=,s=共享,p=私有;
偏移量:库在进程里地址范围
设备:映像文件的主设备号和次设备号;
节点:映像文件的节点号;
路径: 映像文件的路径
每项都与一个vm_area_struct结构成员对应

C语言代码

#include <stdio.h>  
#include <stdlib.h>         
int q[200];         
int main(void)  {    
int i, n, *p;    
p = (int *) malloc(sizeof(int));    
scanf("%d", &n);    
for (i=0; i<200; i++)      
q[i]=i;               
printf("%x %x %x %x %x \n", main, q, p, &i, scanf);             
return 0;         
}

编译成a.out文件

执行该文件

#./a.out

查看执行该文件对应的进程

#ps au

可以看到2200就是我们需要的pid

#cat /proc/2200/maps

参数 解释
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.2.12.so 被映射文件的文件名

各共享库的代码段,存放着二进制可执行的机器指令,是由kernel把该库ELF文件的代码段map到虚存空间;
各共享库的数据段,存放着程序执行所需的全局变量,是由kernel把ELF文件的数据段map到虚存空间;
用户代码段,存放着二进制形式的可执行的机器指令,是由kernel把ELF文件的代码段map到虚存空间;
用户数据段之上是代码段,存放着程序执行所需的全局变量,是由kernel把ELF文件的数据段map到虚存空间;
用户数据段之下是堆(heap),当且仅当malloc调用时存在,是由kernel把匿名内存map到虚存空间,堆则在程序中没有调用malloc的情况下不存在;
用户数据段之下是栈(stack),作为进程的临时数据区,是由kernel把匿名内存map到虚存空间,栈空间的增长方向是从高地址到低地址。


#cat /proc/2200/statm
499 96 83 1 0 62 0

很简单地返回7组数字,每一个的单位都是一页 (常见的是4KB)
分别是
size:任务虚拟地址空间大小
Resident:正在使用的物理内存大小
Shared:共享页数
Trs:程序所拥有的可执行虚拟内存大小
Lrs:被映像倒任务的虚拟内存空间的库的大小
Drs:程序数据段和用户态的栈的大小
dt:脏页数量


查看根进程

#cat /proc/1/statm

相关文章:

两成开发者月薪超 1.7 万、算法工程师最紧缺! | 中国开发者年度报告

整理 | 郭芮 责编 | 唐小引 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; “求知若饥&#xff0c;虚心若愚”——这个原本出自《全球概览》的俳句&#xff0c;因为乔布斯在斯坦福大学毕业演讲中的引用而备受推崇&#xff0c;流传成为 IT 界的至理名言之一。在…

怎么处理404 错误页面 、处理404页面、asp.net 处理404页面

说明 On 指定启用自定义错误。如果未指定 defaultRedirect&#xff0c;用户将看到一般性错误。 Off 指定禁用自定义错误。这允许显示标准的详细错误。 RemoteOnly 指定仅向远程客户端显示自定义错误并且向本地主机显示 ASP.NET 错误。这是默认值。 system.web 元素 下添加下边…

转载:python原生态的输入窗口抖动+输入特效

python原生态的输入窗口抖动输入特效 出处&#xff1a;https://coding.net/u/acee/p/PythonPowerInput/git/blob/master/test_power_input.py __author__ Administrator import sys from lib.qm_app import App from PyQt4.QtGui import * from PyQt4.QtCore import * import …

华为提出基于进化算法和权值共享的神经网络结构搜索,CIFAR-10上仅需单卡半天 | CVPR 2020...

作者 | VincentLee来源 | 晓飞的算法工程笔记导读&#xff1a;为了优化进化算法在神经网络结构搜索时候选网络训练过长的问题&#xff0c;参考ENAS和NSGA-III&#xff0c;论文提出连续进化结构搜索方法(continuous evolution architecture search, CARS)&#xff0c;最大化利用…

在.Net Micro Framework中显示汉字

摘要:MF平台支持的字体是专有格式&#xff0c;扩展名为tinyfnt&#xff0c;需要用专门的转化工具才能把windows平台上的字体转换为tinyfnt字体。在.Net Micro Framework SDK中提供了一个叫做TFConvert.exe的工具&#xff0c;我们可以用它在命令行下将PC机上的TrueType或者OpenT…

汇编语言使用C库函数和Linux动态链接

使用printf 代码 #cpuid2.s -- Using C labrary calls .section .data output: .asciz "The processor Vender is %s\n".section .bss .lcomm buffer, 12 .section .text .globl _start _start: movl $0, %eax cpuid …

springJDBC实现查询方法二

无废话&#xff0c;看代码&#xff1a; Overridepublic List<Sites> queryAllSites(Pager pager) {String sql "select * from sakai_site order by SITE_ID limit ?,?";Object[] obj new Object[]{pager.getStart(),pager.getLimit()};List<Sites> …

全球计算机视觉顶会CVPR 2020论文出炉:腾讯优图17篇论文入选

全球计算机视觉顶级会议CVPR2020 (IEEE Conference on Computer Vision and Pattern Recognition&#xff0c;即IEEE国际计算机视觉与模式识别会议) 即将于2020年6月14日-19日在美国西雅图召开。本届大会总共录取来自全球论文1470篇&#xff0c;腾讯优图实验室入选17篇。 作为…

gcc使用总结

1.基本选项 -o 指定输出文件名。如果不给出这个选项&#xff0c;gcc就给出预设的可执行文件a.out。 # cc -o XX XX.c -c 编译、汇编到目标代码&#xff0c;不进行链接 -v 打印较多信息&#xff0c;显示编译器调用的程序。 -E 仅作预处理&#xff0c;不进行编译、汇编…

websecurity - Web Security Testing Framework 超级牛B扫描器

Windows – Websecurify 0.3.exehttp://websecurify.googlecode.com/files/Websecurify%200.3.exeLinux – Websecurify 0.3.tgzhttp://websecurify.googlecode.com/files/Websecurify%200.3.tgzMac – Websecurify 0.3.dmghttp://websecurify.googlecode.com/files/Websecurif…

C中的qsort函数和C++中的sort函数的理解与使用

一、qsort()函数 原型&#xff1a;_CRTIMP void __cdecl qsort (void*, size_t, size_t,int (*)(const void*, const void*)); 参数解释&#xff1a;1、待排序数组首地址&#xff1b;2、数组中待排序元素数量&#xff1b;3、各元素的占用空间的大小&#xff1b;4、指向函数的指…

机器学习新闻综述:2019年AI领域不得不看的6篇文章

作者 | Limarc Ambalina翻译 | 火火酱&#xff0c;编辑 | Carol出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;在这篇机器学习新闻综述中&#xff0c;我们将回顾一些2019年以来在人工智能各个领域广泛传播或产生影响的重大新闻。此外&#xff0c;我们还将…

GDB attach到进程

要调试守护进程等已经启动的进程或是调试陷于死循环的进程可以使用attach命令 格式 attach pid C语言代码 #include <stdio.h> int main(void) { int marks[10]; int i; for(i0;i<12;i) { scanf("%d",&marks[i]); …

Chrome使用技巧和编辑框拖动怪问题。

常用快捷键&#xff1a;ctrlshiftt 重新打开刚关闭的网页ctrlh 打开历史记录ctrl 放大。ShiftEscape 查看任务管理器据说Chrome能调整编辑区大小&#xff0c;我没发现。倒发现Chrome一个问题&#xff0c;选中编辑框中的文字&#xff0c;一直拖动鼠标&a…

Linux中断研究

2019独角兽企业重金招聘Python工程师标准>>> 研究linux系统&#xff0c;不管是做驱动、协议栈还是进程调度等等&#xff0c;都离不开中断。这说明&#xff0c;要想编写正确的linux代码&#xff0c;不了解中断是不行的。 话说曾几何时&#xff0c;在大学的课堂里&…

linux环境内存分配原理

Linux的虚拟内存管理有几个关键概念&#xff1a; Linux 虚拟地址空间如何分布&#xff1f;malloc和free是如何分配和释放内存&#xff1f;如何查看堆内内存的碎片情况&#xff1f;既然堆内内存brk和sbrk不能直接释放&#xff0c;为什么不全部使用 mmap 来分配&#xff0c;munm…

大脑芯片公司Neuralink计划在人脑内植入芯片,他们到底想干什么?

作者 | James Murphy翻译 | 火火酱&#xff0c;编辑 | Carol出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;说实话&#xff0c;科幻电影在遇到Neuralink时也不得不甘拜下风。2019年7月&#xff0c;埃隆马斯克(Elon Musk)宣布&#xff0c;他的公司正在研发…

判断链表是否存在环(及其延伸)

有一个单链表&#xff0c;其中可能有一个环&#xff0c;也就是某个节点的next指向的是链表中在它之前的节点&#xff0c;这样在链表的尾部形成一环。问题&#xff1a;1、如何判断一个链表是不是这类链表&#xff1f;2、如果链表为存在环&#xff0c;如果找到环的入口点&#xf…

iOS跳转到各种系统设置界面

定位服务 定位服务有很多APP都有&#xff0c;如果用户关闭了定位&#xff0c;那么&#xff0c;我们在APP里面可以提示用户打开定位服务。点击到设置界面设置&#xff0c;直接跳到定位服务设置界面。代码如下&#xff1a; //定位服务设置界面 NSURL *url [NSURL URLWithString:…

Linux内存管理大图(第三稿)

网友画的还不错就转了 &#xff0c;该作者一共画了3版 v0.1 v0.2 v0.3 原文地址&#xff1a;http://bbs.chinaunix.net/thread-2018659-1-1.html

VNC的安装与使用

VNC的安装与使用。 说明&#xff1a;文章内容比较简单&#xff0c;献给那些初学者作为参考。 文章分为两部分&#xff0c;第一部分为VNC简介&#xff0c;第二部分为VNC的安装与使用。 文章为小弟结合书籍与小弟的实际操作总结出来的&#xff0c;如有错误与疏漏之处…

百度「AI战疫」:首次开源肺炎CT影像分析AI模型,让诊断从分钟到秒

自疫情爆发以来&#xff0c;多家科技公司纷纷加入了抗击疫情的战役中。 其中&#xff0c;排查疫情是这场战役的重中之重&#xff0c;而 CT 影像已成为新冠肺炎筛查和病情诊疗的重要依据。 然而&#xff0c;在当前疫情诊疗的关键时期&#xff0c;存量患者和新增患者总体数量庞…

Linux_DNS服务器

目录 目录DNS DNS ServerServerSite Master DNS ServerForward DomainReverse Resolution Slave DNS ServerForward lookupReverse lookupSplit DNS ServerDNS DNS(Domain Name System&#xff0c;域名系统)&#xff0c;在Internet上作为域名和IP地址映射的一个分布式数据库&am…

多场景下的AI疫情防控“天网”:解读云边端联动下的全栈AI技术

在全民抗疫的特殊时期下&#xff0c;伴随着春运返潮&#xff0c;企业陆续复工&#xff0c;从重点防控的机场、火车站等场所&#xff0c;到学校、企业、社区等密集型场所&#xff0c;都是不能忽视的地点。除了人工逐一测量体温排查外&#xff0c;我们还发现&#xff0c;在人员复…

DHCP配置与DHCP中继代理2

实验二&#xff1a;<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />Step1、配置DHCP中继代理1) 打开“管理工具”→“路由和远程访问”窗口&#xff0c;启用路由和远程访问&#xff0c;按向导提示完成操作。<?xml:namespac…

查看CPU是i386架构和x86_64架构

查看处理器是32位还是64位 #cat /proc/cpuinfo 检查flags行中有没有lm标记&#xff0c;lm是Long Mode的简写&#xff0c;表示支持64位模式。 #getconf LONG_BIT 输出&#xff1a;32 #getconf WORD_BIT 输出&#xff1a;32 32位的系统中int类型和long类型一般都是4字节&…

malloc一次性最大能申请多大内存空间

受用户态内存地址空间的限制。64 位系统下分配几个 T 不成问题。 著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。作者&#xff1a;zz matrix链接&#xff1a;http://www.zhihu.com/question/20836462/answer/22833295来源&#xff1a;知乎考…

MD5算法之C#程序

MD5算法比较特别&#xff0c;最适合用汇编语言来写&#xff0c;好多高级语言对之无能无力或效率极低。 比如我最开始尝试用Python和Euphoria编写&#xff0c;发现不太容易。相比而言&#xff0c;C#作为C家簇 中新兴的一门.net语言&#xff0c;功能比较全面。花了一晚上的工夫终…

unix环境汇编语言常用工具

汇编器 MASM&#xff1a;微软的汇编器不支持unix NASM&#xff1a;unix环境下兼容微软平台 GAS&#xff1a;GNU 的免费软件包&#xff0c;unix环境下最流行跨平台汇编器 安装GNU汇编器 检查binunits RedHat #rpm -qa |grep binunits Debian #dpkg -l|grep binunit 下载地…

用Python远程登陆服务器的最佳实践

来源 | Python编程时光&#xff08;ID: Cool-Python&#xff09;在使用 Python 写一些脚本的时候&#xff0c;在某些情况下&#xff0c;我们需要频繁登陆远程服务去执行一次命令&#xff0c;并返回一些结果。在 shell 环境中&#xff0c;我们是这样子做的。$ sshpass -p ${pass…