`
ikon
  • 浏览: 107106 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

  • /proc/[number]/cmdline 程序命令行参数,以’\0′分隔的字符串文件(在程序中,可以通过直接读此文件,获取程序的命令行参数,但不推荐这么做,这样做了程序的可移植性不好 :cry: )
  • /proc/[number]/cwd 程序的当前工作路径的软链接(readlink就可以得到被链接的目录)
  • /proc/[number]/environ 程序的当前环境变量,以’\0′分隔的字符串文件
  • /proc/[number]/exe 程序的可执行文件的软链接(通过readlink可以获取程序可执行文件的完整路径)
  • /proc/[number]/fd 程序当前正在使用的fd,这些fd都链向实际的文件
  • /proc/[number]/maps 程序的地址空间分布和访问权限(通过这些信息,可以查看进程的地址是否在合法的范围)
  • 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
  • /proc/[number]/smaps (since Linux 2.6.14) 程序的每块内存映射区域的内存使用情况
  • 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
  • /proc/[number]/stat 程序的状态信息,ps命令得到的程序信息就是从此处获取的,因此详细的因容可以ps命令
  • /proc/[number]/statm 程序的内存页(page)状态
  • 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)
  • /proc/[number]/status stat和statm合起来的信息,以一种比较方便用户读的方式展示
  • 分享到:
    评论

    相关推荐

      linux 操作系统 GTK /proc文件 系统监视器

      总的来说,结合Linux的`/proc`文件系统和GTK库,我们可以创建一个强大的系统监视工具,帮助用户实时了解和分析系统资源的使用状况,对于优化系统性能和诊断问题具有很高的价值。通过学习和实践这种技术,不仅可以...

      读取/proc/cmdline 文件中的标志位信息

      通过以上介绍和示例代码,我们可以清楚地了解到如何在Java程序中读取 `/proc/cmdline` 文件中的标志位信息。这对于深入理解和定制Linux系统的启动行为提供了强大的工具。同时,这也为开发者提供了一个良好的起点,...

      linux /proc 文件 系统监控器 GTK

      总的来说,"linux /proc 文件系统监控器 GTK"是一个实用的工具,能够帮助Linux用户更好地理解系统的运行状态,及时发现和解决问题,提高系统管理和维护的效率。通过其友好的图形界面,使得监控系统状态变得更加简单...

      linux proc 文件系统 编程手册

      通过学习这个编程手册,你将能够编写程序来读取这些`/proc`文件,从而获取和分析系统数据。例如,你可以创建一个监控工具来检查内存使用率、CPU负载或网络带宽使用情况。同时,`/proc`也常用于调试目的,帮助开发者...

      AppTrafficAnalyzer,一个应用程序,可以通过读取/proc/net/xt_qtaguid/stats来分析应用程序的流量.zip

      总之,AppTrafficAnalyzer是一个强大的工具,它利用Linux内核的特性来监控Android设备上的应用程序流量,帮助用户管理和优化他们的网络资源。对于想要深入了解手机应用流量消耗,或者希望控制数据使用的用户来说,这...

      读取/proc/cpuinfo获取CPU信息demo

      在Linux操作系统中,`/proc/cpuinfo`是一个虚拟文件,它提供了系统CPU的详细信息。这个文件并不存储在硬盘上,而是由内核动态生成,每次读取时都会反映出当前系统的实时状态。通过读取`/proc/cpuinfo`,我们可以获取...

      200900301236-实验一王添枝1

      4. 问题3(C部分):分析/proc/stat以获取CPU在不同状态下的使用时间,以及/proc/diskstats中磁盘的读写统计。 5. 问题4(D部分):使用参数interval设定数据采集间隔,duration设定总的采集时长,持续监测内存状况...

      linux proc文件系统详解

      Linux的proc文件系统是Linux内核提供的一种特殊文件系统,它并不存储于硬盘上,而是直接映射到内存中,反映了系统的实时状态。这个虚拟文件系统对于系统管理员和开发者来说至关重要,因为它提供了查看和交互内核运行...

      linux proc 详解

      Linux下的`/proc`文件系统是一个虚拟的文件系统,它提供了系统内核、硬件设备、系统进程等信息的访问接口。通过读取`/proc`目录下的各个文件,我们可以获取到丰富的系统状态信息,这对于系统监控、故障排查、性能...

      Linux proc目录下子文件或子文件夹的作用

      总之,`/proc` 文件系统是Linux系统中一个非常重要的组成部分,提供了丰富的信息和工具来帮助用户和开发者监控和管理系统的各个方面。通过对 `/proc` 下各个子文件或子文件夹的详细了解和利用,可以有效地提高系统...

      Linux下获得CPU利用率和内存使用情况

      8. Linux 系统的优雅性:Linux 系统是一个优雅的操作系统,提供了许多有用的功能和工具,可以帮助开发者快速地开发应用程序。 9. 学习技术的重要性:学习技术是非常重要的,需要不断地学习和实践新的技术和技能。 ...

      Linux查看进程的内存占用情况.pdf

      本文将详细介绍如何使用几个关键工具来查看Linux进程的内存占用情况。 首先,`top`命令是Linux下最常用且直观的性能监控工具,它能够实时显示系统中每个进程的资源使用状况,包括CPU占用率、内存占用率等。在`top`...

      linux相关和服务器总结.docx

      Linux操作系统和服务器知识总结 Linux是一种开放源代码的操作系统,广泛应用于...以上是Linux系统和服务器知识的基础介绍,涵盖了从硬件选择到日常运维的关键点,对于理解Linux环境下的服务器管理和优化具有指导意义。

      C语言下proc程序设计教程

      同时,熟悉常见的`/proc`文件及其内容结构,可以帮助开发者编写出能够获取和分析系统状态的有效工具。 本教程的"proc程序设计_正文.PDF"和"proc程序设计_目录.PDF"文件应包含更深入的细节,包括但不限于: 1. `/...

      proc 官网中文教程

      - **调试和性能分析**:开发者可以利用`/proc`来查看进程的堆栈信息、打开文件描述符等,辅助进行程序调试和性能优化。 - **内核模块管理**:`/proc/modules`列出了已加载的内核模块,可以通过`/proc/sys`进行内核...

      Oracle_ProC.rar_linux oracle_linux proc *c_linux proc oracle_ora

      - 在Linux环境下,首先需要安装Oracle客户端工具,包括OCI(Oracle Call Interface)库,这是ProC依赖的基础。 - 设置必要的环境变量,如`ORACLE_HOME`、`LD_LIBRARY_PATH`等,确保链接到正确的Oracle库。 - 配置...

      Qt linux获取cpu使用率、内存、网络收发速度、磁盘读写速度、磁盘剩余空间

      在Linux系统中,使用Qt库开发应用程序时,可以利用各种系统接口来获取CPU使用率、内存占用、网络流量、磁盘I/O速度以及磁盘剩余空间等关键信息。以下将详细讲解如何通过Qt来实现这些功能。 1. CPU使用率: 在Linux...

      Linux-定期清内存缓存-shell脚本

      ### Linux-定期清内存...通过以上分析,我们可以了解到如何编写和执行一个简单的shell脚本来定期清理Linux系统的内存缓存,以及如何使用crontab来自动化这一过程。这有助于优化系统的内存使用,确保其高效稳定地运行。

      【操作系统】基于/proc文件的Linux资源监视器

      【操作系统】基于/proc文件的Linux资源监视器是一种实用工具,它允许用户通过图形用户界面(GUI)实时监控系统的各种资源使用情况。在Linux中,/proc文件系统是一个虚拟文件系统,它提供了对内核状态和系统信息的...

    Global site tag (gtag.js) - Google Analytics