在学习systemtap过程中使用show_trace,这个函数在/proc/kallsyms中存在,表示这是个有效的函数,用systemtap执行时候报错unkown symbol in module,用dmesg看错误比较明显Unkown symbol show_stack,显然说明这个函数没有导出,导出的符号表存在那里呢,看一下内核源码中的modules.txt,导出的符号表文件为Module.symvers 。具体路径在/lib/moudules/`uname -r`/Module.symvers),
那systemtap到那里查找内核的调试符号呢?在http://sourceware.org/systemtap/man/stappaths.7.html上面有说明,一般在/usr/lib/debug/lib/modules/$(uname -r)/,SYSTEMTAP_DEBUGINFO_PATH 这个环境变量可以改写上面的地址。
默认,systemtap查找vmlinux调试信息的路径为
/boot/vmlinux-`uname -r`
/lib/modules/`uname -r`/vmlinux
/lib/modules/`uname -r`/vmlinux.debug
/lib/modules/`uname -r`/build/vmlinux
/lib/modules/`uname -r`/.debug/vmlinux.debug
/usr/lib/debug/lib/modules/`uname -r`/vmlinux.debug
/var/cache/abrt-di/usr/debug/lib/modules/`uname -r`/
/var/cache/abrt-di/usr/lib/debug/lib/modules/`uname -r`/vmlinux.debug
stap -l 'kernel.function("*")' 列出的是调试信息中的所有函数,包括上面的show_stack。表明show_stack可以设置跟踪点,但因为没有导出,不可以在模块中调用。
用strace跟踪程序的执行过程,很多时候也可以知道具体的原因。
相关推荐
目录教程类:我自己学习过程中的一个学习笔记,通过例子展示用法。:阿里技术专家的教程,也是很不错的。:Brendan在2011年写的介绍博客。:官方教程。:官方的新手入门指南。:《使用DTrace和Systemtap进行动态跟踪...
systemtap是什么?如何通过systemtap对应用程序内核程序进行调试?如何编写运行systemtap脚本?
SystemTap_Beginners_Guide
很全面详细的讲解了systemtap脚本编写基础语法,很好的入门文档
systemtap script examples , cross compile from x86 to arm.
systemTap英文文档集合.7z
systemtap 入门 通过kernel预留的探针位置,跟踪kernel事件,统计内核系统调用和性能数据。
systemtap交叉编译,运行于android平台。OMAP项目的实例,很有借鉴价值。
systemtap的入门指南,包含tracing/analysis/tapsets等,入门必备
Language Reference.pdf // 详细说明systemtap脚本的语法规则 Tapset Refernce Manual.pdf // 脚本库,详细说明每个function的功能 tutorial.pdf // systemtap 脚本初级教材,介绍脚本的一些用途 Beginners_Guide....
systemtap_tutorial
本文主要介绍在ubuntu平台 + 自定义内核上如何安装systemtap工具包及解决编译加载运行过程中的一些问题,如何利用systemtap工具监测分析内核函数,内核模块及用户态程序。
systemtap使用说明,英文版,包括简单用例,和实现方式,探测实现方式
SystemTap是一个全新的工具,但已经表现出了强大的功能和广泛的适用性。 SystemTap使得动态收集Linux内核信息和性能数据变得轻而易举,这就使人可以从繁琐的数据采集中解放出来,而专注于数据的处理和分析,这无疑 ...
学习Linux性能优化必不可少的工具sytemtap。想学习的同学可以下载。
用systemtap研究内核 用systemtap研究内核 用systemtap研究内核 用systemtap研究内核 用systemtap研究内核
linux 调试神器,linux 调试神器,linux 调试神器,linux 调试神器
Linux内核调试新秀SystemTap.pdf