我一直在使用oprofile试图找出为什么我的程序在内核上花费了这么多时间。我现在有了来自内核的符号,但显然我的程序和内核之间没有链接来告诉我程序的哪些部分花费了这么长的时间。
samples % image name app name symbol name
-------------------------------------------------------------------------------
201 0.8911 vmlinux-3.0.0-30-generic vmlinu
使用过的GCC: Linaro--GCC 4.7/4.8/4.9.3/6.4/7.3,但版本似乎没有意义
操作系统:更新了Linux Mint 19和4.17.2-ext73-57.2内核。
我试着编译了一些源代码(例如官方的LineageOS源代码),每次我都会得到:
WARNING: vmlinux.o(.data+0x10f40): Section mismatch in reference from the
variable gdsc_driver to the (unknown reference) .init.data:(unknown)
The variable gdsc_dr
我正在尝试使用perf打印特定函数中的变量的值。因此,我尝试使用-V选项进行perf探测,但得到的错误消息如下。 # perf probe -V tcp_sendmsg
Failed to find the path for the kernel: Invalid ELF file
Error: Failed to show vars. 因此,我下载了内核符号和源包,并检查了/boot/config-5.3.0-46-generic中的值CONFIG_DEBUG_INFO是否设置为1,但仍然出现相同的错误。 我应该如何解决这个问题? Ubuntu 18.04 LTS版本:5.3.0-46
我正在为Centos 8.4.2105编写内核5.13.7
我有以下错误
MODPOST vmlinux.symvers
MODINFO modules.builtin.modinfo
GEN modules.builtin
BTF: .tmp_vmlinux.btf: pahole (pahole) is not available
Failed to generate BTF for vmlinux
Try to disable CONFIG_DEBUG_INFO_BTF
make: *** [Makefile:1205: vmlinux] Error 1
我试着在Go
在尝试使用支持Ftrace和调试信息构建内核(4.15)时,我得到了以下错误:
FAILED: load BTF from vmlinux: No such file or directory
Makefile:1160: recipe for target 'vmlinux' failed
这就是我想要做的:
$ ./scripts/config -e CONFIG_FTRACE
$ ./scripts/config -e CONFIG_DEBUG_INFO
$ ./scripts/config -e CO
编译内核版本时出现此错误:5.7-rc4
BTF: .tmp_vmlinux.btf: pahole (pahole) is not available
Failed to generate BTF for vmlinux
Try to disable CONFIG_DEBUG_INFO_BTF
make: *** [Makefile:1106: vmlinux] Error 1
我正在使用google ndk工具链为我的Samsung Note3 SM-N900P模型交叉编译图像。我下载了Kitkat版本的三星源代码,我相信我已经按照内核自述文件中的说明进行了操作。它声明使用4.7工具链,我在NDK版本8d中找到了它。但我得到以下错误:
ERROR: modpost: Found 2 section mismatch(es).
To see full details build your kernel with:
'make CONFIG_DEBUG_SECTION_MISMATCH=y'
To build the kernel despite the
我正在尝试使用gdb从vmlinux读取内存。确切的语法是
sudo gdb vmlinux-4.18.0-rc1+ /proc/kcore
我使用这个文件是因为vmlinux是这个文件的符号链接。结果如下
Reading symbols from vmlinux-4.18.0-rc1+...(no debugging symbols found)...done.
warning: core file may not match specified executable file.
[New process 1]
Core was generated by `root=/dev/mapper
我正在尝试用自定义补丁构建ubuntu5.3.0内核。我下载了源代码,并使用
patch -p1 < patch_name.patch
并使用
make config
然后我用
make -j6
这给了我vmlinux和vmlinux.o文件。我不知道如何使用它们,所以我尝试将内核变成一个.deb文件。我用
make deb-pkg
fakeroot make-kpkg -j N --initrd --append-to-version=my-very-own-kernel kernel-image kernel-headers
make bindeb-pkg
但是在编译完整个内核之
我试图使用kdump和崩溃实用程序来分析openSUSE 11.3上的Linux内核恐慌。系统正在成功地创建vmcore文件,但是当我去分析它时,crash抱怨缺少符号。
# crash -s vmlinux-2.6.34-12-desktop.gz vmcore
crash: vmlinux-2.6.34-12-desktop.gz: no debugging data available
crash: vmlinux-2.6.34-12-desktop.debug: debuginfo file not found
crash: either install the appropriat
我想知道在C代码中执行printf时调用哪个内核模块。我怎么能找到那个?比方说,当我使用ldd时,我可以找到哪些库附加到我的二进制文件中。我在找类似的东西。基本上,我想研究负责printf的文件的结构。
考虑以下代码
#include <stdio.h>
int main()
{
int i = 0;
int N = 100;
while (i++ <= N) {
printf("%d ", i);
}
return 0;
}
当我运行perf命令perf record -e cycles -j any -a -o perf.dat
在构建openwrt时,我遇到了这个问题:
Command line marker not found!
make[5]: *** [kernel_prepare] Error 255
经过分析,我发现问题来自于tools/patch-image/src/patch-cmdline.c:
for (p = ptr; p < (ptr + search_space); p += 4) {
if (memcmp(p, "CMDLINE:", 8) == 0) {
found = 1;
p += 8;
break;
我正在尝试将postmarketOS连接到三星Galaxy S3 Neo。在编译linux内核的过程中,我得到了一个错误: ERROR: modpost: Found 2 section mismatch(es).
To see full details build your kernel with:
'make CONFIG_DEBUG_SECTION_MISMATCH=y'
To build the kernel despite the mismatches, build with:
'make CONFIG_NO_ERROR_ON_MISMATCH=y'