Systemtap命令stap----安裝

一.安裝systemtap

apt-get install systemtap

二.安裝內核調試信息

直接在http://ddebs.ubuntu.com/pool/main/l/linux/頁面下載下面的包(不需要重新編譯內核,只需要下載這個包)

 

linux-image-unsigned-4.15.0-66-generic-dbgsym_4.15.0-66.75_amd64.ddeb(我的CPU是x86_64的下載的這個)

三.測試

stap -p4 sample.stp -m sample (根據sample.stp生成sample.ko,sample.stp的內容在下面)

staprun sample.ko (運行ko)

 運行後不報錯就說明安裝OK了

注意:如果不安裝內核調試信息會遇到如下問題,下面這個過程就是我踩的坑

Ubuntu18.04下安裝好Systemtap後運行如下測試命令

stap -p2 sample.stp

其中sample.stp內容如下:

#cat sample.stp 
probe kernel.function("sys_read") { printf("hi from sys_read!\n"); exit() }

1.運行報如下錯誤

semantic error: while resolving probe point: identifier 'kernel' at sample.stp:1:7
        source: probe kernel.function("sys_read") { printf("hi from sys_read!\n"); exit() }
                      ^

semantic error: missing x86_64 kernel/module debuginfo [man warning::debuginfo] under '/lib/modules/4.15.0-66-generic/build'

Pass 2: analysis failed.  [man error::pass2]
Tip: /usr/share/doc/systemtap/README.Debian should help you get started.

 

2.運行stap-prep命令

根據README.Debian的提示需要運行stap-prep命令

To use systemtap you need to manually install the linux-image-*-dbg and linux-header-* packages that match your running kernel. To simplify this task you can use the stap-prep command.

但運行stap-prep後會報如下問題(需要dbgsym信息)

You need package linux-image-4.15.0-66-generic-dbgsym but it does not seem to be available
 Ubuntu -dbgsym packages are typically in a separate repository
 Follow https://wiki.ubuntu.com/DebuggingProgramCrash to add this repository

3.直接在http://ddebs.ubuntu.com/pool/main/l/linux/頁面下載下面的包(不需要重新編譯內核,只需要下載這個包)

 

linux-image-unsigned-4.15.0-66-generic-dbgsym_4.15.0-66.75_amd64.ddeb(我的CPU是x86_64的下載的這個)

4.下載後運行如下的命令安裝

dpkg -i linux-image-unsigned-4.15.0-66-generic-dbgsym_4.15.0-66.75_amd64.ddeb

5.再次運行stap-prep命令

綜上,就可以用stap命令了

stap -p4 sample.stp -m sample (根據sample.stp生成sample.ko)

staprun sample.ko (運行ko)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章