写在最前面:在开始本文之前,笔者认为先有必要介绍一下linux下的man,如果读者手头用linux系统,直接在终端输入man man便可以看到详细的说明,我在这里简单的总结一下,man命令是用来查看linux下各种命令、工具等的用户手册(manual)的。一种比较常用的用法是”man n field”,这里的n是要查找的手册了类型,field是关键字。在这里介绍一下n:
通常情况下,如果不加n的话,系统会按一定的顺序,有时候得到的可能不是你想要的,这时候就需要加上n了,这就是我要介绍n的目的。比如,你man
printf,系统返回的肯定是shell命令printf,你要看库函数printf怎么办呢,那就man 3 printf,that’s ok
下面进入今天的正题,/proc是linux系统为我们用户提供的一个可以用来访问系统相关数据及信息的一个伪文件
系统,通过它我们不仅可以获取指定某个进程的相关信息,还可以获取系统整体的运行情况及信息。因为本文讲的是分析程序的工具,所以本文将侧重介绍通过/proc来分析程序本身,关于如何通过/proc来查看系统相关信息,可以通过man
5 proc来看(这也是我开始就讲man的一个原因 )。
1 2 3 4 5 6 7 8 9 10 |
address perms offset dev inode pathname 08048000-08056000 r-xp 00000000 03:0c 64593 /usr/sbin/gpm 08056000-08058000 rw-p 0000d000 03:0c 64593 /usr/sbin/gpm 08058000-0805b000 rwxp 00000000 00:00 0 40000000-40013000 r-xp 00000000 03:0c 4165 /lib/ld-2.2.4.so 40013000-40015000 rw-p 00012000 03:0c 4165 /lib/ld-2.2.4.so 4001f000-40135000 r-xp 00000000 03:0c 45494 /lib/libc-2.2.4.so 40135000-4013e000 rw-p 00115000 03:0c 45494 /lib/libc-2.2.4.so 4013e000-40142000 rw-p 00000000 00:00 0 bffff000-c0000000 rwxp 00000000 00:00 0 |
1 2 3 4 5 6 7 |
08048000-080bc000 r-xp 00000000 03:02 13130 /bin/bash #与maps中的相同 Size: 464 kB #映射区的大小 Rss: 424 kB #实际在内存中的大小 Shared_Clean: 424 kB Shared_Dirty: 0 kB Private_Clean: 0 kB Private_Dirty: 0 kB |
1 2 3 4 5 6 7 |
size total program size resident resident set size share shared pages text text (code) lib library data data/stack dt dirty pages (unused in Linux 2.6) |
linux程序分析工具介绍(一)—-”/proc”,布布扣,bubuko.com
原文:http://www.cnblogs.com/wliangde/p/3736544.html