【问题标题】:perf cannot find external module symbolsperf 找不到外部模块符号
【发布时间】:2014-03-18 18:11:23
【问题描述】:

在运行perf 时,它会找到我的程序的内核符号和符号,但找不到外部模块符号。我已经编写了一个内核模块,我使用 insmod 加载它我如何告诉 perf 也找到它的符号?

我运行的是 2.6.37.6 内核(无法升级),我的 perf 还不支持 dwarf 选项,但我认为这是一个符号问题。我用-g -fno-omit-frame-pointer编译了所有东西

【问题讨论】:

  • 您可以从较新的内核(已经编译或自己编译)获得性能并在较旧的内核上使用它。有时这会起作用,并为您提供额外的功能,如 dwarf 选项。

标签: symbols kernel-module perf


【解决方案1】:

我必须把它做成一个内核模块,然后 perf 才能找到它的符号:

IN_TREE_DIR=/lib/modules/`uname -r`/kernel/modulename
mkdir -p $IN_TREE_DIR
cp modulename.ko $IN_TREE_DIR
depmod -a 

【讨论】:

  • 外部模块的标准位置是:/lib/modules/uname -r/extra
猜你喜欢
  • 2015-10-08
  • 2022-11-11
  • 2020-04-25
  • 2020-04-25
  • 2017-07-17
  • 2017-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多