【发布时间】:2022-11-03 04:50:34
【问题描述】:
我已经按照以下说明构建了支持 FTrace 和调试信息的 Linux 内核:
$ cd /path/to/linux-debug-workshop
$ source /path/to/environment-setup-aarch64-poky-linux
$ make training_defconfig
$ ./scripts/config -e CONFIG_FTRACE
$ ./scripts/config -e CONFIG_DEBUG_INFO
$ ./scripts/config -e CONFIG_DEBUG_INFO_DWARF5
$ ./scripts/config -e CONFIG_DEBUG_INFO_BTF
$ ./scripts/config -d CONFIG_DEBUG_INFO_REDUCED
$ make -j$(nproc) Image dtbs modules
以上步骤在 /path/to/linux-debug-workshop 下生成“vmlinux”。我需要按照以下说明构建内核模块 sched_tp.ko:
$ cd /path/to/lisa
$ source /path/to/poky/poky/3.1.9/environment-setup-aarch64-poky-linux
$ source init_env
$ ./tools/kmodules/build_module \
/path/to/linux-debug-workshop ./tools/kmodules/sched_tp/
在尝试构建时,我在最后一步中收到以下错误:
Building module for ARCH=arm64
make: Entering directory 'linux-debug-workshop/lisa/tools/kmodules/sched_tp'
make -C /linux-debug-workshop M=/linux-debug-workshop/lisa/tools/kmodules/sched_tp modules
make[1]: Entering directory '/linux-debug-workshop'
pahole -F btf,dwarf -E --suppress_force_paddings --show_only_data_members --skip_missing --expand_types_once --expanded_prefix "KERNEL_PRIVATE_" -C file:///linux-debug-workshop/lisa/tools/kmodules/sched_tp/private_types.txt /linux-debug-workshop/vmlinux > _header
**pahole: /linux-debug-workshop/vmlinux: Invalid argument**
我检查了pahole版本:v1.23
【问题讨论】:
-
DWARF v5 是非常新的。你的pahole支持吗?
-
@stark 似乎 pahole 从 1.13 开始支持 DWARF5,并在此过程中添加了额外的支持(1.20、1.21、1.23)。不确定它是否支持所需的一切。
标签: linux ubuntu linux-kernel pahole