我遵循systemtap在線教程@http://sourceware.org/systemtap/tutorial/,我試圖做一些練習。在2.3 Q1,-L選項似乎從未work..I上了車端腳本如何使用systemtap -L選項?
probe kernel.function("*nit*"){}
類型:$ STAP-L PROBE t.stp 注意到偏偏 和我正在尋找很長一段時間,沒有關於這個選項的信息,甚至在systemtap的網站上...
任何幫助?
謝謝!
我遵循systemtap在線教程@http://sourceware.org/systemtap/tutorial/,我試圖做一些練習。在2.3 Q1,-L選項似乎從未work..I上了車端腳本如何使用systemtap -L選項?
probe kernel.function("*nit*"){}
類型:$ STAP-L PROBE t.stp 注意到偏偏 和我正在尋找很長一段時間,沒有關於這個選項的信息,甚至在systemtap的網站上...
任何幫助?
謝謝!
$ stap -L 'kernel.function("blahblah")'
Systemtap是偉大的,但很差的文檔。
man stap
從(安裝systemtap*-1.7-2.fc15.x86_64
的RPM)
stap [ OPTIONS ] -l PROBE [ ARGUMENTS ]
stap [ OPTIONS ] -L PROBE [ ARGUMENTS ]
-l PROBE
Instead of running a probe script, just list all available probe
points matching the given single probe point. The pattern may
include wildcards and aliases, but not comma-separated multiple
probe points. The process result code will indicate failure if
there are no matches.
-L PROBE
Similar to "-l", but list probe points and script-level local
variables.
「探針點」 指的是 'kernel.function( 「blahblah」)' 等,有前沒有關鍵字 「探針」 和沒有探測處理程序之後。
你可以嘗試下面的例子。
獲取所有內核函數的列表。
$ stap -l'kernel.function(「*」)'|排序
kernel.function( 「vfs[email protected]/build/linux-lts-xenial-Hu9lgy/linux-lts-xenial-4.4.0/fs/read_write.c:440」) [....]
爲了得到一個內核函數&參數(局部變量)
$ STAP -L 'kernel.function( 「*」)' | grep vfs_read
kernel.function(「[email protected]/build/linux-lts-xenial-Hu9lgy/linux-lts-xenial-4.4.0/fs/read_write.c:440」)$ file:struct file * $ BUF:字符* $計數:爲size_t $ POS:參數loff_t *
[...]
只是爲了添加到些什麼學問的人比我說:
stap -L 'module("module-name-here").function("*")'
對於經常核探針:
stap -L 'kernel.function("*")'
希望這有助於未來的其他人!