2012年4月23日 星期一

在linux下trace code的神兵- cscope

因為工作的關係常常需要在linux下trace code
這裡分享的是如何利用vim+cscope去trace code
當然如果你覺得Source insight已經很夠用的話就可以自動略過這篇文章

首先先安裝相關套件
拿Fedora為例
yum install cscope
yum install ctags

然後利用下面的myscope.sh去建立database以利trace
#!/bin/sh
#1.搜尋相關興趣的副檔名

find . -name "*.h" -o -name "*.c" -o -name "*.cc" -o -name "*.cpp" -name "*.pp" > cscope.files
#2.根據找到的檔案做關連

cscope -bkq -i cscope.files
ctags -R

接著打開vim
cs add cscope.out  //加入資料庫
接著就可以開始trace code拉

使用方法
s: 查找C语言符号,即查找函数名、宏、枚举值等出现的地方
g: 查找函数、宏、枚举等定义的位置,类似ctags所提供的功能
d: 查找本函数调用的函数
c: 查找调用本函数的函数
t: 查找指定的字符串
e: 查找egrep模式,相当于egrep功能,但查找速度快多了
f: 查找并打开文件,类似vim的find功能
i: 查找包含本文件的文

例如想搜尋foo函數定義的地方
:cs f g foo
或者是全部檔案有出現foo的函數/變數
:cs f s foo
或者是想搜尋example.c這個檔案在哪的地方
:cs f f example.c

其他的功能就自已去玩囉

參考連結:
http://www.cnblogs.com/jianyungsun/archive/2011/07/24/2115298.html

沒有留言: