- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用以下选项集构建我自己的内核。
CONFIG_FRAME_POINTER=y
CONFIG_DEBUG_INFO=y
所以我假设生成的 vmlinux 文件将包含所有必需的调试信息。
我在一台机器上安装了那个内核,并将 vmlinux 文件放在/boot/下。但是,当我尝试执行 perf annotate 时,它不会在汇编代码旁边显示源代码。它只显示汇编代码和 c 函数名称而不是整个源代码(我曾尝试在注释期间切换“s”)。
这是我的性能命令。
#perf record -g -a -e cycles:k sleep 5
#perf report -f -g -s symbol
#perf annotate -f -s <kernel function name> > annotate_<kernel_function>.txt
我在这里错过了什么?我需要单独安装调试信息包吗?
问候,阿蒂什
最佳答案
用于构建内核 rpm 的 binrpm-pkg 目标不会生成调试信息,因为它禁用了调试信息包的生成,您可以尝试这样做,在内核源代码树中打开 scripts/package/mkspec
,然后搜索一行 echo "%define debug_package %{nil}"
,评论或删除这一行,然后再次尝试构建。
原因是这一行明确告诉 rpmbuild 跳过 debuginfo 包。
查看链接:
关于linux - 如何从 vmlinux 安装调试信息包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36672177/
当我构建Linux内核时,生成了两个镜像vmlinux和vmlinux.o。它们的大小似乎也不同(分别为 113KB 和 198KB...)。有人可以提供有关差异的见解吗? 谢谢, Vj 最佳答案 L
由于之前有很多困惑,所以我在这里重新表述问题,删除旧问题。 我想打印 power-pc 架构上 vmlinux 二进制文件的所有符号信息 - static, dynamic(.so ) 以及运行时,包
我从 vmlinux 二进制文件中找到了 sys_open 代码: c1143c20: 55 push ebp c1143c21: 89 e5
我正在使用以下选项集构建我自己的内核。 CONFIG_FRAME_POINTER=y CONFIG_DEBUG_INFO=y 所以我假设生成的 vmlinux 文件将包含所有必需的调试信息。 我在一台
在 Linux 内核中,我需要找到所使用的结构的成员变量的偏移量。例如,对于 task_struct 类型的 init_task,我想要它的 pid 和任务的偏移量。 为此,我只有 vmlinux。我
在新安装的虚拟机中,为 x86 架构编译内核时出现此错误: $ Could not mmap file: vmlinux $ make: *** [vmlinux] Error 1 第一次见到。我已将
我已经在启用以下内核选项的情况下编译了我的内核。这应该足够了。 CONFIG_KGDB=y CONFIG_KGDB_SERIAL_CONSOLE=y CONFIG_DEBUG_INFO=y 我想在内核
我可以从 *.ko 转换为 *.o 吗? 我没有 *.ko 的任何源代码。 我的目标是将*.ko包含到vmlinux中。 最佳答案 根据您的问题,我了解到您正在尝试将动态模块 *.ko 转换为构建到内
所以我在 NXP LPC1788 处理器(ARM-CortexM3,无 MMU)下使用 ucLinux。 ucLinux 移植最初是由 Emcraft Systems 完成的。 1788 具有 512
我想从 vmlinuz 生成 System.map,因为大多数机器没有文件 System.map。实际上,vmlinuz 被压缩到 vmlinuz 或 bzImage。 有什么工具或脚本可以做到这一点
问题: 20 年来: 我最后写了 >1K 的 C 代码 编译任何>10K 源代码行 我当前的发行版 (Ubuntu 16.04) 对 0cf3:e300 Atheros Communications,
我正在从事一个依赖劳特巴赫 JTAG 调试器硬件和软件的项目,目标 JTAG 电缆的支持已于 2011 年 7 月结束。我们在 omap2 处理器上使用 Linux 2.6.33 内核。我们正在使用
我正在从事一个依赖劳特巴赫 JTAG 调试器硬件和软件的项目,目标 JTAG 电缆的支持已于 2011 年 7 月结束。我们在 omap2 处理器上使用 Linux 2.6.33 内核。我们正在使用
我有 2 个驱动程序文件。 dr1.c dr2.c dr1.c 执行 EXPORT_SYMBOL(func1)。 dr2.c 通过 dr1.h 中的定义使用它 dr1 和 dr2 都被编译并创建了目标
嗨,我想使用 Oprofile 在内核上运行分析,但它需要未压缩的 vmlinux 图像,而 ubuntu 10.10 提供了剥离和压缩的 vmlinuz。请帮忙 最佳答案 您可能需要从源代码重建内核
我正在尝试从 BPF CO:RE 开发开始。在 VM 中使用 Ubuntu 20.04 LTS,我需要重新编译内核并安装 pahole(来自 apt install dwarves)以便启用 BTF(
我有一个 ARM 板,我通过电线将它连接到我的 linux(主机)系统。我在 arm 处理器中插入带有 vmlinux.uimg 的 sd 卡,并在主机系统上使用 minicom。现在我想使用 gdb
我正在尝试安装 UML Linux。内核是 2.6.28。 我链接到 Linux 文件,这样我就有了一个可以恢复的只读副本。 然后我运行命令: make defconfig ARCH=um # wo
我是一名优秀的程序员,十分优秀!