当 运行 systemstap 脚本时出现“__tracepoint_sched_process_fork 未定义”
"__tracepoint_sched_process_fork undefined" when run systemstap script
错误信息:
WARNING: "__tracepoint_sched_process_fork" [/tmp/stapH5cHsd/stap_958d0ff0e571c9357f1e193511d8baa3_269311.ko] undefined!
WARNING: "__tracepoint_sys_exit" [/tmp/stapH5cHsd/stap_958d0ff0e571c9357f1e193511d8baa3_269311.ko] undefined!
WARNING: "__tracepoint_sys_enter" [/tmp/stapH5cHsd/stap_958d0ff0e571c9357f1e193511d8baa3_269311.ko] undefined!
WARNING: "__tracepoint_sched_process_exec" [/tmp/stapH5cHsd/stap_958d0ff0e571c9357f1e193511d8baa3_269311.ko] undefined!
WARNING: "__tracepoint_sched_process_exit" [/tmp/stapH5cHsd/stap_958d0ff0e571c9357f1e193511d8baa3_269311.ko] undefined!
ERROR: Couldn't insert module '/tmp/stapH5cHsd/stap_958d0ff0e571c9357f1e193511d8baa3_269311.ko': Unknown symbol in module
WARNING: /usr/bin/staprun exited with status: 1
Pass 5: run failed. [man error::pass5]
Tip: /usr/share/doc/systemtap/README.Debian should help you get started.
我的环境:
# cat /proc/version
Linux version 3.16.0-70-generic (buildd@lgw01-01) (gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) ) #90~14.04.1-Ubuntu SMP Wed Apr 6 22:56:34 UTC 2016
# stap -V
Systemtap translator/driver (version 2.3/0.158, Debian version 2.3-1ubuntu1.4 (trusty))
Copyright (C) 2005-2013 Red Hat, Inc. and others
This is free software; see the source for copying conditions.
enabled features: AVAHI LIBSQLITE3 NSS TR1_UNORDERED_MAP NLS
# dpkg --list | grep `uname -r`
ii linux-headers-3.16.0-70-generic 3.16.0-70.90~14.04.1 amd64 Linux kernel headers for version 3.16.0 on 64 bit x86 SMP
ii linux-image-3.16.0-70-generic 3.16.0-70.90~14.04.1 amd64 Linux kernel image for version 3.16.0 on 64 bit x86 SMP
ii linux-image-3.16.0-70-generic-dbgsym 3.16.0-70.90~14.04.1 amd64 Linux kernel debug image for version 3.16.0 on 64 bit x86 SMP
ii linux-image-extra-3.16.0-70-generic 3.16.0-70.90~14.04.1 amd64 Linux kernel extra modules for version 3.16.0 on 64 bit x86 SMP
ii linux-signed-image-3.16.0-70-generic 3.16.0-70.90~14.04.1 amd64 Signed kernel image generic
# sudo cat /proc/kallsyms | grep __tracepoint_sched_process_fork
ffffffff81cecbe0 D __tracepoint_sched_process_fork
我在 the maillist of systemtap 上问过这个问题,很快我就得到了答案。
这是因为“跟踪点API在内核3.15中发生了变化,我们
赶上了 systemtap 2.5 中的那些变化”,也就是我需要一个新版本的 systemtap。
下载systemtap-2.6并安装后,运行良好,没有这个错误。
错误信息:
WARNING: "__tracepoint_sched_process_fork" [/tmp/stapH5cHsd/stap_958d0ff0e571c9357f1e193511d8baa3_269311.ko] undefined!
WARNING: "__tracepoint_sys_exit" [/tmp/stapH5cHsd/stap_958d0ff0e571c9357f1e193511d8baa3_269311.ko] undefined!
WARNING: "__tracepoint_sys_enter" [/tmp/stapH5cHsd/stap_958d0ff0e571c9357f1e193511d8baa3_269311.ko] undefined!
WARNING: "__tracepoint_sched_process_exec" [/tmp/stapH5cHsd/stap_958d0ff0e571c9357f1e193511d8baa3_269311.ko] undefined!
WARNING: "__tracepoint_sched_process_exit" [/tmp/stapH5cHsd/stap_958d0ff0e571c9357f1e193511d8baa3_269311.ko] undefined!
ERROR: Couldn't insert module '/tmp/stapH5cHsd/stap_958d0ff0e571c9357f1e193511d8baa3_269311.ko': Unknown symbol in module
WARNING: /usr/bin/staprun exited with status: 1
Pass 5: run failed. [man error::pass5]
Tip: /usr/share/doc/systemtap/README.Debian should help you get started.
我的环境:
# cat /proc/version
Linux version 3.16.0-70-generic (buildd@lgw01-01) (gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) ) #90~14.04.1-Ubuntu SMP Wed Apr 6 22:56:34 UTC 2016
# stap -V
Systemtap translator/driver (version 2.3/0.158, Debian version 2.3-1ubuntu1.4 (trusty))
Copyright (C) 2005-2013 Red Hat, Inc. and others
This is free software; see the source for copying conditions.
enabled features: AVAHI LIBSQLITE3 NSS TR1_UNORDERED_MAP NLS
# dpkg --list | grep `uname -r`
ii linux-headers-3.16.0-70-generic 3.16.0-70.90~14.04.1 amd64 Linux kernel headers for version 3.16.0 on 64 bit x86 SMP
ii linux-image-3.16.0-70-generic 3.16.0-70.90~14.04.1 amd64 Linux kernel image for version 3.16.0 on 64 bit x86 SMP
ii linux-image-3.16.0-70-generic-dbgsym 3.16.0-70.90~14.04.1 amd64 Linux kernel debug image for version 3.16.0 on 64 bit x86 SMP
ii linux-image-extra-3.16.0-70-generic 3.16.0-70.90~14.04.1 amd64 Linux kernel extra modules for version 3.16.0 on 64 bit x86 SMP
ii linux-signed-image-3.16.0-70-generic 3.16.0-70.90~14.04.1 amd64 Signed kernel image generic
# sudo cat /proc/kallsyms | grep __tracepoint_sched_process_fork
ffffffff81cecbe0 D __tracepoint_sched_process_fork
我在 the maillist of systemtap 上问过这个问题,很快我就得到了答案。
这是因为“跟踪点API在内核3.15中发生了变化,我们 赶上了 systemtap 2.5 中的那些变化”,也就是我需要一个新版本的 systemtap。
下载systemtap-2.6并安装后,运行良好,没有这个错误。