androidproc进程信息解析_第1页
androidproc进程信息解析_第2页
androidproc进程信息解析_第3页
androidproc进程信息解析_第4页
androidproc进程信息解析_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、an droid proc进程信息解析如何查看ANDROID进程信息呢,可以先进入 ADB SHELL,然后在PROC文件夹下,有很 多对应进程ID号的子文件夹,进入对应的文件夹内, 可以看到有以下信息, 就可以查询到你 的进程信息了。参数如下:/proc/maps查看进程的虚拟地址空间是如何使用的。该文件有6列,分别为:地址:库在进程里地址范围权限:虚拟内存的权限,r=读,w=写,x=,s=共享,p=私有;偏移量:库在进程里地址范围设备:映像文件的主设备号和次设备号;节点:映像文件的节点号;路径:映像文件的路径每项都与一个 vm_area_struct结构成员对应,范例:应用程序的正文段(权

2、限为 r-xp)从0x08048000至U 0x08049000,大小为4096;数据段从 0x08049000至U 0x0804a000,大小为1KB。该应用程序使用了两个库 :lib和libc。Libc的正文 段从 0x00391000 到 0x004b4000,大小为 1164KB ;数据段从 0x004b5000 到 0x004b8000,大小 为 12KB.Ld 的正文段从 00378000 到 0038d000,大小为 84KB ;数据段从 0x0038e000 到 0x0038f000 , 大小为4KB。该应用程序所使用 的库所占的虚拟空间的大小从 0x4b8000到0x3780

3、00 ,大小 为1280KB,其实真正大小为 VmLib(1251KB);因为是按页分配,每页 大小为4KB。rootlocalhost # cat /proc/7114/maps08047000-080dc000 r-xp 00000000 03:06 884901 /bin/bash080dc000-080e3000 rwxp 00094000 03:06 884901 /bi n/bash080e3000-08129000 rwxp 080e3000 00:00 0 heap4d575000-4d58a000 r-xp 00000000 03:06 736549 /lib/ld-2.3.

4、4.so4d58a000-4d58b000 r-xp 00015000 03:06 736549 /lib/ld-2.3.4.so4d58b000-4d58c000 rwxp 00016000 03:06 736549 /lib/ld-2.3.4.so4d58e000-4d6b1000 r-xp 00000000 03:06 736550 /lib/tls/libc-2.3.4.so4d6b1000-4d6b2000 r-xp 00123000 03:06 736550 /lib/tls/libc-2.3.4.so4d6b2000-4d6b5000 rwxp 00124000 03:06 73

5、6550 /lib/tls/libc-2.3.4.so4d6b5000-4d6b7000 rwxp 4d6b5000 00:00 04d6de000-4d6e0000 r-xp 00000000 03:06 736552 /lib/libdl-2.3.4.so4d6e0000-4d6e2000 rwxp 00001000 03:06 736552 /lib/libdl-2.3.4.so4d807000-4d80a000 r-xp 00000000 03:06 736567 /lib/libtermcap.so.2.0.84d80a000-4d80b000 rwxp 00002000 03:06

6、 736567 /lib/libtermcap.so.2.0.8 b7bf2000-b7c1e000 r-xp 00000000 03:06 881337 /usr/lib/gco nv/GB18030.so b7c1e000-b7c20000 rwxp 0002b000 03:06 881337 /usr/lib/gco nv/GB18030.sob7c20000-b7c26000 r-xs 00000000 03:06 881502 /usr/lib/gco nv/gco nv-modules.cache b7c26000-b7d2f000 r-xp 02197000 03:06 8524

7、89 /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/lib nss_files-2.3.4.so b7f38000-b7f3a000 rwxp 00008000 03:06 734450 /lib/lib nss_files-2.3.4.so b7f3a000-b7f3c000 rwxp b7f3a000 00:00 0 b7f5

8、1000-b7f52000 rwxp b7f51000 00:00 0 bfc3d000-bfc52000 rw-p bfc3d000 00:00 0 stack ffffe000-fffff000 -p 00000000 00:00 0 vdsorootlocalhost #参数解释address: 0085拟内存区域的起始和终止地址文件所占的地址空间 perms:rw-p 权限:r=read, w=write, x=execute, s=shared, p=private(copy on write) offset: 00000000虚拟内存区域在被映射文件中的

9、偏移量dev: 03:08文件的主设备号和次设备号in ode:设备的节点号,0表示没有节点与内存相对应name: /lib/ld-2.3.4.so被映射文件的文件名kernel把该库ELF文件的代码段kernel把ELF文件的数据段 mapkernel把ELF文件的代码段 mapkernel把ELF文件的数据各共享库的代码段,存放着二进制可执行的机器指令,是由 map到虚存空间;各共享库的数据段,存放着程序执行所需的全局变量,是由 到虚存空间;用户代码段,存放着二进制形式的可执行的机器指令,是由 到虚存空间; 用户数据段之上是代码段,存放着程序执行所需的全局变量,是由 段map到虚存空间;用

10、户数据段之下是堆(heap),当且仅当 malloc调用时存在,是由 kernel把匿名内存 map到虚 存空间,堆则在程序中没有调用malloc的情况下不存在;用户数据段之下是栈(stack),作为进程的临时数据区,是由kernel把匿名内存map到虚存空间,栈空间的增长方向是从高地址到低地址。rootlocalhost # ldd /bin/bashlinu x-gate.so.1 =& gt; (0xffffe000)libtermcap.so.2 => /lib/libtermcap.so.2 (0x4d807000)libdl.so.2 =& gt; /

11、lib/libdl.so.2 (0x4d6de000)libc.so.6 =& gt; /lib/tls/libc.so.6 (0x4d58e000)/lib/ld-li nux.so.2 (0x4d575000)rootlocalhost #这个所谓的"linux-gate.so.1 "的内容就是内核映射的代码, 系统中其实并不存在这样 一个链接 库文件,它的名字是由 ldd自己起的,了 0xffffe400这里的一段代码,这里就是内 核为我们映射的系统调用入口代码。Mapped是该应用程序的虚拟空间的大小,这里的值比用top或ps都大了 4KB,

12、就是最后0xffffe400-0xffffffff的代码;shared给出共享的虚拟空间部分。2 /proc/stat包含了所有CPU活跃的信息,该文件中的所有值都是从系统启动开始累计到当前时刻。rootlocalhost # cat /proc/6873/stat6873 (a.out) R 6723 6873 6723 34819 6873 8388608 77 0 0 0 41958 31 0 0 25 0 3 0 5882654 1409024 56 4294967295 134512640 134513720 3215579040 0 2097798 0 0 0 0 0 0 0 17

13、 0 0 0 rootlocalhost #每个参数意思为:参数解释pid=6873进程(包括轻量级进程,即线程)号comm=a.out应用程序或命令的名字task_state=R 任务的 状态,R:runnign, S:sleeping (TASK_INTERRUPTIBLE), D:disk sleep(TASK_UNINTERRUPTIBLE), T: stopped, T:tra cing stop,Z:zombie, X:deadppid=6723 父进程 IDpgid=6873线程组号sid=6723 c该任务所在的会话组IDtty_nr=34819(pts/3)该任务的tty终端

14、的设备号,INT( 34817/256)=主设备号,(34817-主设 备号)=次设备号tty_pgrp=6873终端的进程组号,当前运行在该任务所在终端的前台任务(包括shell应用程序)的 PID。task ->flags=8388608进程标志位,查看该任务的特性min_flt=77该任务不需要从硬盘拷数据而发生的缺页(次缺页)的次数cmin_flt=0累计的该任务的所有的waited-for进程曾经发生的次缺页的次数目maj_flt=0该任务需要从硬盘拷数据而发生的缺页(主缺页)的次数cmaj_flt=0累计的该任务的所有的waited-for进程曾经发生的主缺页的次数目

15、utime=1587该任务在用户态运行的时间,单位为jiffiesstime=1该任务在核心态运行的时间,单位为 jiffiescutime=0累计的该任务的所有的 waited-for进程曾经在用户态运行的时间,单位为 jiffies cstime=0累计的该任务的所有的 waited-for进程曾经在核心态运行的时间,单位为 jiffies priority=25任务的动态优先级nice=0任务的静态优先级num_threads=3该任务所在的线程组里线程的个数it_realvalue=0由于计时间隔导致的下一个SIGALRM发送进程的时延,以jiffy为单位.start_time=588

16、2654该任务启动的时间,单位为 jiffiesvsize=1409024 ( page) 该任务的虚拟地址空间大小rss=56(page)该任务当前驻留物理地址空间的大小Number of pages the process has in real memory ,minu 3 for adm ini strative purpose.这些页可能用于代码,数据和栈。rlim=4294967295 ( bytes) 该任务能驻留物理地址空间的最大值start_code=134512640该任务在虚拟地址空间的代码段的起始地址end_code=134513720该任务在虚拟地址空间的代码段的结束

17、地址start_stack=3215579040该任务在虚拟地址空间的栈的结束地址kstkesp=O esp(32位堆栈指针)的当前值,与在进程的内核堆栈页得到的一致.kstkeip=2097798指向将要执行的指令的指针,EIP(32位指令指针)的当前值pendingsig=O待处理信号的位图,记录发送给进程的普通信号block_sig=0阻塞信号的位图sigign=0忽略的信号的位图sigcatch=082985被俘获的信号的位图wchan=O如果该进程是睡眠状态,该值给出调度的调用点nswap被swapped的页数,当前没用cnswap所有子进程被swapped的页数的和,当前没用exi

18、t_signal=17该进程结束时,向父进程所发送的信号task_cpu(task)=O 运行在哪个 CPU 上task_rt_priority=0实时进程的相对优先级别task_policy=0进程的调度策略,0=非实时进程,仁FIFO实时进程;2=RR实时进程3 /proc/status包含了所有CPU活跃的信息,该文件中的所有值都是从系统启动开始累计到当前时刻。rootlocalhost # cat /proc/self/statusName: catState: R (running)SleepAVG: 88%Tgid: 5783Pid: 5783PPid: 5742TracerPid

19、: 0Uid: 0 0 0 0Gid: 0 0 0 0FDSize: 256Groups: 0 1 2 3 4 6 10VmSize: 6588 kBVmLck: 0 kBVmRSS: 400 kBVmData: 144 kBVmStk: 2040 kBVmExe: 14 kBVmLib: 1250 kBStaBrk: 0804e000 kBBrk: 088df000 kBStaStk: bfe03270 kBExecLim: 0804c000Threads: 1SigP nd: 0000000000000000ShdPnd:0000000000000000SigBIk: 0000000000

20、000000Siglg n: 0000000000000000SigCgt: 0000000000000000Caplnh: 0000000000000000Cap Prm: 00000000fffffeffCap Eff: 00000000fffffeff输出解释参数解释Name应用程序或命令的名字State任务的状态,运行/睡眠/僵死/SleepAVG任务的平均等待时间(以nano seco nd为单位),交互式任务因为休眠次数多、时间长, 它们的sleep_avg也会相应地更大一些,所以计算出来的优先级也会相应高一些。Tgid线程组号Pid任务IDPpid父进程IDTracerPid接收

21、跟踪该进程信息的进程的ID号Uid Uid euid suid fsuidGid Gid egid sgid fsgidFDSize文件描述符的最大个数,file->fdsGroupsVmSize(KB) 任务虚拟地址空间的大小(total_vm-reserved_vm),其中total_vm为进程的地址空间的大小,reserved_v m:进程在预留或特殊的内存间的物理页VmLck(KB) 任务已经锁住的物理内存的大小。锁住的物理内存不能交换到硬盘(locked_vm)VmRSS(KB)应用程序正在使用的物理内存的大小,就是用 ps命令的参数rss的值(rss) VmData(

22、KB)程序数据段的大小(所占虚拟内存的大小),存放初始化了的数据; (total_vm-shared_vm-stack_vm)VmStk(KB) 任务在用户态的栈的大小(stack_vm)VmExe(KB)程序所拥有的可执行虚拟内存的大小,代码段,不包括任务使用的库 (en d_code-start_code)VmLib(KB) 被映像到任务的虚拟内存空间的库的大小(exec_lib)VmPTE该进程的所有页表的大小,单位: kbThreads共享使用该信号描述符的任务的个数,在POSIX多线程序应用程序中,线程组中的所有线程使用同一个信号描述符。SigQ待处理信号的个数SigPnd屏蔽位,存

23、储了该线程的待处理信号ShdP nd屏蔽位,存储了该线程组的待处理信号SigBlk存放被阻塞的信号SigIgn存放被忽略的信号SigCgt存放被俘获到的信号Caplnh In heritable,能被当前进程执行的程序的继承的能力CapPrm Permitted,进程能够使用的能力,可以包含CapEff中没有的能力,这些能力是被进程自己临时放弃的,CapEff是CapPrm的一个子集,进程放弃没有必要的能力有利于提高安 全性CapEff Effective,进程的有效能力范例1可以看出该应用程序的正文段(1KB)很小,说明代码很少,是依靠库(1251KB )来执行。栈(138KB )适中,说明没有太多许多嵌套函数或特别多的临时变量。 VmLck为0说明进程没有锁住任何页。VmRSS表示当前进程使用的物理内存为2956KB。当进程开始使用已经申请的但还没有用的内存时,VmRSS的值开始增大,但是VmSize保持不变。rootlocalhost 1# cat /proc/4668/statusName: gam_serverState: S (sleep ing

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论