阅读441 返回首页    go 阿里云 go 技术社区[云栖]


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

工作中, 经常会读取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的代码本身就很快

最后更新:2017-07-05 14:02:36

  上一篇:go  Golang调用Python
  下一篇:go  棋牌平台定制教程之扎金花大小比较算法在php中的实现