linux程序分析工具介绍
1. proc
/proc是linux系统为我们用户提供的一个可以用来访问系统相关数据及信息的一个伪文件 系统,通过它我们不仅可以获取指定某个进程的相关信息,还可以获取系统整体的运行情况及信息。
2. ldd
ldd是用来分析程序运行时需要依赖的动态库的工具。
ldd的结果可以分为三列来看:
- 第一列:程序需要依赖什么库
- 第二列: 系统提供的与程序需要的库所对应的库
- 第三列:库加载的开始地址
通过上面的信息,我们可以得到以下几个信息:
- (1) 通过对比第一列和第二列,我们可以分析程序需要依赖的库和系统实际提供的,是否相匹配
- (2) 通过观察第三列,我们可以知道在当前的库中的符号在对应的进程的地址空间中的开始位置
3. nm
nm是用来查看指定程序中的符号表相关内容的工具。
nm输出内容为三列:
- 第一列:当前符号的地址
- 第二列:当前符号的类型(关于类型的说明,感兴趣的朋友可以man nm详阅)
- 第三列:当前符号的名称
4. sar
sar是linux下用来分析系统本身运行情况的非常有用的工具。我们知道,程序在操作系统上要运行,要关注的点不外乎内存,CPU和IO(包括磁盘IO和网络IO)。我们的应用程序在操作系统中运行前,我们需要了解系统当前的内存,cpu和IO的使用状况,还需要明白我们的应用程序运行时自身所需要的内存,cpu和IO资源的情况。只有操作系统剩余的内存,cpu和IO资源能够满足应用程序所需要的,才能保证应用程序在操作系统中正常的运行。sar就是用来帮助我们了解操作系统当前内存,cpu和IO等资源的使用情况的一个非常方便的工具.
其他一些工具:vmstat可以用来查看内存的使用情况,top可以用来查看cpu的使用情况,iostat可以用来查看io的情况。