2008年9月18日 星期四

Debug tools - pretrace

packet link: http://dev.inversepath.com/trac/pretrace echo

libpretrace is a preload library that allows specified (dynamically linked) applications to always be executed under a debugging environment. To start using pretrace, add libpretrace.so to your /etc/ld.so.preload.



#make
#make install 會被安裝到/usr/local/ (debian 的關係嗎?)

所以本來一開始要
# echo /lib/libpretrace.so >> /etc/ld.so.preload
改成
#echo /usr/local/lib/libpretrace.so >> /etc/ld.so.preload


再來是把pretrace.conf.example copy 到
/etc/pretrace.conf

執行
#ptgenmap
吃進去conf產生機器可以閱讀的map檔
--
這邊還要問候他X的老師ㄧ下 (翻桌)
make install 的時候並沒有把libpretrace.so copy 到/lib
只有拷貝到/usr/local/lib
所以要手動自己來
#cp libpretrace.so /lib
不然執行ptgenmap會看到
ptgenmap: error while loading shared libraries: libpretrace.so: cannot open shared object file: No such file or directory

--

pretrace.conf 範例裡有拿ls 當範本
會把ls 呼叫用strace debug 並且把log檔案放到
/home/使用者/ls.logfile

注意這個目錄是可以放喔。

PS. 我還是不覺得這工具跟直接呼叫strace 然後 > file
有多大差異 ~"~,在研究看看。


用途:
1.可以在開機的流程(尚未login)當中把strace紀錄就log起來,增加debug彈性。