利用systemtap学习Linux路由代码

Posted zengkefu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用systemtap学习Linux路由代码相关的知识,希望对你有一定的参考价值。

http://bbs.chinaunix.net/thread-4090162-1-1.html


一、为什么要这样做
读kernel route子系统代码,当我弄懂了数据结构之间的关系以及控制流程后,
心里还是不妥贴,总有一种“纸上得来终觉浅,绝知此事要躬行”的感觉。
此时,systemtap能起大作用。

二、准备工作
安装systemtap, kernel, kernel-debuginfo, kernel-debuginfo-common等。
uname -r
2.6.38.6-26.rc1.fc15.i686

http://ftp.jaist.ac.jp/pub/Linux ... 26.rc1.fc15.src.rpm

rpmbuild --rebuild --target=i686 --without pae --without perf --with firmware --without debug kernel-2.6.38.6-26.rc1.fc15.src.rpm

三、编写脚本
这个脚本是针对 2.6.38.6-26代码编写的,如果你使用别的kernel版本,
需要相应的修改。需要重命名成 route.tap。
<ignore_js_op>技术分享 route.tap.tar.gz (171 Bytes, 下载次数: 65) 

四、运行

在一个终端运行:
stap -v route.tap |tee log

在另一个终端运行:
ip route flush cache
ssh 10.66.66.66

五:分析
分析log文件,你就可以看到整个路由查找的过程。

如 <ignore_js_op>技术分享 log.tar.gz (1.07 KB, 下载次数: 67) 

鱼饮水,冷暖自知,乐趣尽在其中!

以上是关于利用systemtap学习Linux路由代码的主要内容,如果未能解决你的问题,请参考以下文章

systemtap [主设备号,次设备好,inode]监控文件

在Ubuntu上安装使用Systemtap

Linux中使用Systemtap调试SLUB

React 学习之路由HashRouter和BrowserRouter

systemtap 列出所有linux 内核模块与相关函数2

Linux下性能测量和调试诊断工具Systemtap