工作中, 经常会读取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这一层往下调用的所有函数过程, 就很容易找到了

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

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

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

相关文章:

  • 2022-01-03
  • 2022-12-23
  • 2021-12-16
  • 2021-07-13
  • 2021-12-28
  • 2021-11-21
  • 2021-12-09
  • 2021-08-27
猜你喜欢
  • 2022-02-06
  • 2022-12-23
  • 2021-08-29
  • 2021-07-16
  • 2021-11-07
  • 2022-12-23
相关资源
相似解决方案