我需要oprofile
来显示内核中发生的事情的详细信息,而不是将其标记为/no-vmlinux
。
为了能够为oprofile
提供内核符号,我使用extract_vmlinux
中提供的脚本/usr/src/linux-headers-3.9.7/scripts
从压缩版本vmlinux
获取vmlinuz
。
然后我使用选项operf
来调用--vmlinux path_to_vmlinux
。
但是,operf
会显示以下错误消息:
无法获取vmlinux结束地址指定的vmlinux文件 (/ tmp / vmlinux)似乎没有效果。确保你使用的是 非压缩图像文件(例如vmlinux not vmlinuz)
通过在operf
的代码中关注此错误消息,我发现它最有可能在调用objdump -t
之后发生(选项-t是“打印文件的符号表条目”)。根据objdump的联机帮助页)
当我运行:“objdump -t vmlinux
”时,我得到以下输出:
vmlinux: file format elf64-x86-64
SYMBOL TABLE:
no symbols
你能帮我吗?