读书人

linux程序分析工具引见(一)-”/proc

发布时间: 2012-07-28 12:25:13 作者: rapoo

linux程序分析工具介绍(一)—-”/proc”

写在最前面:在开始本文之前,笔者认为先有必要介绍一下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?linux程序分析工具引见(一)—-”/proc”
    ??????下面进入今天的正题,/proc是linux系统为我们用户提供的一个可以用来访问系统相关数据及信息的一个伪文件 系统,通过它我们不仅可以获取指定某个进程的相关信息,还可以获取系统整体的运行情况及信息。因为本文讲的是分析程序的工具,所以本文将侧重介绍通过/proc来分析程序本身,关于如何通过/proc来查看系统相关信息,可以通过man 5 proc来看(这也是我开始就讲man的一个原因?linux程序分析工具引见(一)—-”/proc”?)。

  • /proc/[number]/cmdline 程序命令行参数,以’\0′分隔的字符串文件(在程序中,可以通过直接读此文件,获取程序的命令行参数,但不推荐这么做,这样做了程序的可移植性不好?linux程序分析工具引见(一)—-”/proc”?)
  • /proc/[number]/cwd 程序的当前工作路径的软链接(readlink就可以得到被链接的目录)
  • /proc/[number]/environ 程序的当前环境变量,以’\0′分隔的字符串文件
  • /proc/[number]/exe 程序的可执行文件的软链接(通过readlink可以获取程序可执行文件的完整路径)
  • /proc/[number]/fd 程序当前正在使用的fd,这些fd都链向实际的文件
  • /proc/[number]/maps 程序的地址空间分布和访问权限(通过这些信息,可以查看进程的地址是否在合法的范围)
    12345678910
    1234567
    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合起来的信息,以一种比较方便用户读的方式展示

  • 读书人网 >UNIXLINUX

    热点推荐