linux程序分析工具介绍(一)—-”/proc”
来源:互联网 发布:js判断奇数偶数 编辑:程序博客网 时间:2024/06/07 17:57
写在最前面:在开始本文之前,笔者认为先有必要介绍一下linux下的man,如果读者手头用linux系统,直接在终端输入man man便可以看到详细的说明,我在这里简单的总结一下,man命令是用来查看linux下各种命令、工具等的用户手册(manual)的。一种比较常用的用法是”man n field”,这里的n是要查找的手册了类型,field是关键字。在这里介绍一下n:
0 /usr/include下的头文件1 可执行程序和shell命令2 系统调用3 系统库函数4 /dev下的特殊文件5 文件格式和约定(比如/etc/passwd)
6 游戏7 其它8 仅root可用的系统管理命令9 内核相关的内容 通常情况下,如果不加n的话,系统会按一定的顺序,有时候得到的可能不是你想要的,这时候就需要加上n了,这就是我要介绍n的目的。比如,你man printf,系统返回的肯定是shell命令printf,你要看库函数printf怎么办呢,那就man 3 printf,that’s ok
下面进入今天的正题,/proc是linux系统为我们用户提供的一个可以用来访问系统相关数据及信息的一个伪文件 系统,通过它我们不仅可以获取指定某个进程的相关信息,还可以获取系统整体的运行情况及信息。因为本文讲的是分析程序的工具,所以本文将侧重介绍通过/proc来分析程序本身,关于如何通过/proc来查看系统相关信息,可以通过man 5 proc来看(这也是我开始就讲man的一个原因 )。
/proc/[number]/cmdline 程序命令行参数,以’\0′分隔的字符串文件(在程序中,可以通过直接读此文件,获取程序的命令行参数,但不推荐这么做,这样做了程序的可移植性不好 )/proc/[number]/cwd 程序的当前工作路径的软链接(readlink就可以得到被链接的目录)/proc/[number]/environ 程序的当前环境变量,以’\0′分隔的字符串文件/proc/[number]/exe 程序的可执行文件的软链接(通过readlink可以获取程序可执行文件的完整路径)/proc/[number]/fd 程序当前正在使用的fd,这些fd都链向实际的文件/proc/[number]/maps 程序的地址空间分布和访问权限(通过这些信息,可以查看进程的地址是否在合法的范围)12345678910
address perms offset dev inode pathname08048000-08056000 r-xp 00000000 03:0c 64593 /usr/sbin/gpm08056000-08058000 rw-p 0000d000 03:0c 64593 /usr/sbin/gpm08058000-0805b000 rwxp 00000000 00:00 040000000-40013000 r-xp 00000000 03:0c 4165 /lib/ld-2.2.4.so40013000-40015000 rw-p 00012000 03:0c 4165 /lib/ld-2.2.4.so4001f000-40135000 r-xp 00000000 03:0c 45494 /lib/libc-2.2.4.so40135000-4013e000 rw-p 00115000 03:0c 45494 /lib/libc-2.2.4.so4013e000-40142000 rw-p 00000000 00:00 0bffff000-c0000000 rwxp 00000000 00:00 0
/proc/[number]/smaps (since Linux 2.6.14) 程序的每块内存映射区域的内存使用情况1234567
08048000-080bc000 r-xp 00000000 03:02 13130 /bin/bash #与maps中的相同Size: 464 kB #映射区的大小Rss: 424 kB #实际在内存中的大小Shared_Clean: 424 kB Shared_Dirty: 0 kBPrivate_Clean: 0 kBPrivate_Dirty: 0 kB
/proc/[number]/stat 程序的状态信息,ps命令得到的程序信息就是从此处获取的,因此详细的因容可以ps命令/proc/[number]/statm 程序的内存页(page)状态1234567
size total program sizeresident resident set sizeshare shared pagestext text (code)lib librarydata data/stackdt dirty pages (unused in Linux 2.6)
/proc/[number]/status stat和statm合起来的信息,以一种比较方便用户读的方式展示
转自:http://www.wuzesheng.com/?p=1517
- linux程序分析工具介绍(一)—-”/proc”
- linux程序分析工具介绍(一)—-”/proc”
- linux程序分析工具介绍
- linux程序分析工具介绍
- linux程序分析工具介绍(二)—-ldd,nm
- linux程序分析工具介绍—ldd,nm
- linux程序分析工具介绍(二)—-ldd,nm
- linux程序分析工具介绍(二)—-ldd,nm
- linux程序分析工具介绍(二)—-ldd,nm
- Linux程序分析工具介绍—ldd,nm
- Linux程序分析工具介绍—ldd,nm
- linux程序分析工具介绍—ldd,nm
- linux程序分析工具介绍(二)—-ldd,nm
- linux程序分析工具介绍—ldd,nm
- linux程序分析工具介绍-ldd,nm
- 程序分析工具gprof介绍
- 程序分析工具gprof介绍
- 程序分析工具gprof介绍
- 树的孩子兄弟链表实现
- JSF 初始化 页面数据的方法
- 看懂信息检索和网络数据挖掘领域论文的必备知识总结
- fdisk -l 和more /proc/partitions区别
- php5.4+xdebug
- linux程序分析工具介绍(一)—-”/proc”
- 页面有100个button,一个listbox。动态产生控件及一些逻辑控制
- 巧用同余定理
- windows操作系统的自启动项
- 福音!JS脚本可视化调试支持——基于Google v8引擎的脚本调试
- c# 标准控件 缩写
- Small World: 精简向量运算库
- HDOJ 2072
- JMAP、jstat命令输出结果说明