如何找到proc文件sys文件对应的内核函数

简介: 工作中, 经常会读取proc或者sys目录下的很多文件, 比如cat /proc/cmdline, cat /proc/uptime之类的, 有时候我们想看看对应的内核实现, 却不知道从哪里找起, 老司机们当然很容易从源代码中根据经验和某种规律找出来, 但是新手就困难得多. 下面有一种办法是很容易得获得这些接口文件对应的内核函数 trace-cmd trace-cmd record -

工作中, 经常会读取proc或者sys目录下的很多文件, 比如cat /proc/cmdline, cat /proc/uptime之类的, 有时候我们想看看对应的内核实现, 却不知道从哪里找起, 老司机们当然很容易从源代码中根据经验和某种规律找出来, 但是新手就困难得多. 下面有一种办法是很容易得获得这些接口文件对应的内核函数

trace-cmd

trace-cmd record -p function_graph -g vfs_read cat /proc/cmdline ; trace-cmd report |vim -

会记录内核从vfs_read这一层往下调用的所有函数过程, 就很容易找到了

image.png

很容易得看出就是vfs->proc_reg_read->cmdline_proc_show, 而且每一个函数的调用时间都有

其实关于调用时间, 加了trace以后, 是有很大影响的, 比如-g参数和-l参数就差很多, 因为-g每个函数都要跑trace代码, 被trace的代码本身就很快

目录
相关文章
|
6月前
删除pagefile.sys
删除pagefile.sys
|
10月前
|
固态存储 Windows
Windows10 如何禁用或删除大的Hiberfil.sys和Pagefile.sys文件
如果您的电脑在运行时内存不充足,并且这时候又需要有更多的内存来保证系统运行的效率,那么Windows就会用硬盘空间来模拟系统的内存。这就叫做虚拟内存,通常称为页面文件。也就是由于虚拟内存的设定在对应的系统目录下产生了pagefile.sys文件。如果是SSD ,建议大家还是保留虚拟内存
214 0
|
Linux
Linux关于proc_create函数的修改
Linux关于proc_create函数的修改
528 0
Linux关于proc_create函数的修改
|
Linux
Linux 格式化分区 报错Could not stat --- No such file or directory 和 partprobe 命令
分区的过程正常: [root@db1 /]# fdisk -l   Disk /dev/sda: 21.4 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 160...
1310 0
|
Linux 编译器 C语言
linux中#include <sys/stat.h>的位置
linux中的gcc编译器默认是从 "cd /usr/include/" 中查找头文件的,但是在该目录下并没有发现sys子目录。那么这个sys到底对应于系统的哪个目录?经过一番查找,我发现#include 在:"cd /usr/include/x86_64-linux-gnu/sys/stat.h"这个里面。
1575 0