calltree的安裝與使用

2021-08-10 10:00:38 字數 1831 閱讀 8264

calltree是乙個用於幫助閱讀源**的工具,其可以生成函式之間的關係呼叫圖。

安裝:解壓後直接make即可,在make過程中會遇到錯誤,解決的命令

1、cp rules/i686-linux-cc.rul rules/x86_64-linux-cc.rul

2、find . -name"*.[c|h]"|xargs sed -i -e"s/fexecve/fexecve_calltree/"

find . -name"*.[c|h]"|xargs sed -i -e"s/getline/getline_calltree/"

find . -name "*.[c|h]" -exec grep getline -nh {} \;

find . -name "*.[c|h]" -exec grep fexecve -nh {} \;

3、

安裝好後,軟鏈結到/usr/bin目錄下  ln -s /home/***/calltree/obj/x86_64-linux-cc/calltree /usr/bin/calltree

apt-get install graphviz先安裝

使用:

-g輸出函式所在檔案的目錄

-m引數只用於分析main函式中的函式呼叫關係。

-p引數是預設的。它表示要使用c語言預處理程式分析**。缺點是它會產生很多我們不關心的訊息。

-np和-p是相反的。它表示不要使用c語言預處理程式分析**。如果指定它,可能會導致分析過程出錯。因為像開源專案,有幾個不需要預處理處理下呢?

-xvcg引數表示匯出乙個可以使用vcg軟體處理的格式的檔案。

-dot引數表示匯出乙個dot格式檔案,可以供graphviz處理的。

list可以讓我們指定僅僅需要分析的函式裡的函式呼叫。

還有乙個重要的選項是listfunction ,縮寫是lf,用來只列印某個函式中的呼叫,用法是: lf=your_function

使用一:

#calltree -np -b  list=start_kernel  depth=3 `find ./init/ ./kernel/ -name "*.c"` > maps

#vi maps

使用二:

calltree -np -b -dot list=start_kernel ./init/*.c > ~/start_kernel.dot

dot -t png start_kernel.dot -o ./testhaha.png

使用三:

calltree -dot list="ev_run"*.c > ev_run.dot

dot -tgif ev_run.dot -o ev_run.gif

systemimager的安裝與使用

它是如何工作的?systemimager 應用 伺服器,被稱作映象伺服器,它取回乙個 golden client 的整個系統映象並將其部署到任何其它不同數量的客戶端系統中。golden client 系統是你按照自己的喜好定製的。你可以重新編譯核心,安裝軟體,按你的喜好調整任何配置檔案。si get...

kermit的安裝與使用

kermit安裝過程 1 mkdir kermit cd kermit 2 wget 3 gunzip cku211.tar.gz 4 tar xvf cku211.tar 5 rm cku211.tar optional 6 make linux 7 cp wermit usr bin kermi...

bugzilla 的安裝與使用

然後就對apache進行配置 tar zxvf httpd 2.2.22.tar.gz進行解壓 然後進入httpd 2.2.22目錄 進行配置apache伺服器 執行sudo configure prefix usr local apache命令 然後執行sudo make sudo make in...