首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Perf:内核模块符号在分析中没有显示

Perf:内核模块符号在分析中没有显示
EN

Stack Overflow用户
提问于 2017-06-02 10:21:13
回答 1查看 5.4K关注 0票数 2

加载和运行内核模块,然后通过perf进行分析。

$perf record -a -g --call-graph dwarf sleep 30' $perf report

我的内核模块的符号不在perf的报告中。虽然/proc/kallsyms.中存在符号,但perf buildid-list中也不存在模块,因为this回答说,要使模块成为内核模块,我尝试了,但没有起到作用。导致这种情况的可能原因是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-03 11:51:07

消息Failed to open [thrUserCtrl], continuing without symbols听起来像是perf无法找到您的模块。试着把它安装到

代码语言:javascript
复制
/lib/modules/`uname -r`/extra

https://wiki.centos.org/HowTos/BuildingKernelModules中所说的目录

  1. 在本例中,刚刚创建了文件cifs.ko。作为根目录,将.ko文件复制到/lib/modules//extra/目录中。

代码语言:javascript
复制
   [root@host linux-2.6.18.i686]# cp fs/cifs/cifs.ko /lib/modules/`uname -r`/extra

(在更改depmod -a文件后,不要忘记/lib/modules命令)

此消息是在map__loadhttp://elixir.free-electrons.com/linux/v4.11/source/tools/perf/util/map.c#L284中生成的

代码语言:javascript
复制
int map__load(struct map *map)
{
    const char *name = map->dso->long_name;
    int nr;
    ...
    nr = dso__load(map->dso, map);
    if (nr < 0) {
        if (map->dso->has_build_id) {
         ...
        } else
            pr_warning("Failed to open %s", name);

        pr_warning(", continuing without symbols\n");
        return -1;

dso__load函数返回错误时。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44326565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档