- 論壇徽章:
- 0
|
本帖最后由 pwp_cu 于 2013-07-11 10:20 編輯
一、為什么要這樣做
讀kernel route子系統(tǒng)代碼,當(dāng)我弄懂了數(shù)據(jù)結(jié)構(gòu)之間的關(guān)系以及控制流程后,
心里還是不妥貼,總有一種“紙上得來(lái)終覺(jué)淺,絕知此事要躬行”的感覺(jué)。
此時(shí),systemtap能起大作用。
二、準(zhǔn)備工作
安裝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
三、編寫腳本
這個(gè)腳本是針對(duì) 2.6.38.6-26代碼編寫的,如果你使用別的kernel版本,
需要相應(yīng)的修改。需要重命名成 route.tap。
route.tap.tar.gz
(171 Bytes, 下載次數(shù): 77)
2013-07-11 10:17 上傳
點(diǎn)擊文件名下載附件
systemtap腳本
四、運(yùn)行
在一個(gè)終端運(yùn)行:
stap -v route.tap |tee log
在另一個(gè)終端運(yùn)行:
ip route flush cache
ssh 10.66.66.66
五:分析
分析log文件,你就可以看到整個(gè)路由查找的過(guò)程。
如
log.tar.gz
(1.07 KB, 下載次數(shù): 82)
2013-07-11 10:17 上傳
點(diǎn)擊文件名下載附件
log文件
魚飲水,冷暖自知,樂(lè)趣盡在其中!
|
評(píng)分
-
查看全部評(píng)分
|