SystemTap失败并显示错误“警告:kbuild退出状态:2”

时间:2013-06-07 17:59:25

标签: module makefile kernel systemtap kbuild

我构建了一个自定义内核3.2-41,需要kernel-debuginfo-common和kernel-debuginfo包。我在内核2.6.32-358的CentOS系统上安装了这些软件包。使用新内核启动系统。我运行了stap来列出系统调用和内核函数,没有任何问题:

# stap -l 'syscall.*'
# stap -l 'kernel.function("*")'

但是,运行一个简单的订书钉脚本:

# stap -e 'probe "kernel.function("do_fork"){printf("fork is called\n")}'

返回错误:

make[1]: *** No rule to make target`/tmp/stap2QWXn/stap_12cd14bbeaab6bfcaac79c1830a62d98_710.src needed by /tmp/stap2QXn/stap_12cd14bbeaab6bfcaac79c1830a62d98_710.o 
Stop.
make: *** [_module/stap2QWXn] Error 2
WARNING: kbuild exited with status: 2
pass 4: compilation failed. Try again with another '--vp 001' option.

我在/usr/src/kernels/3.2-41下解读3.2-41的来源。考虑到它试图覆盖CentOS 2.6.32-258内核使用的/ usr / include /目录,我没有安装kernel-headers-3.2.41.x86_64.rpm包。我需要在/ usr / include中安装标头吗?这会导致这个问题吗?

2 个答案:

答案 0 :(得分:0)

我的猜测是这与内核版本无关;也许/ tmp出了问题(完全?权限问题?)。 使用stap -k再次尝试(保持tmpdir)。您应该看到生成的stap _..._ src.c文件和其他一些文件。

答案 1 :(得分:0)

确保您已安装最新版本的gcc。

sudo apt-get update
sudo apt-get install gcc