global
安装
安装GNU global,以ubuntu为例:
$ sudo apt install global安装后有如下命令
gtags : 生成GNU global的数据库
global : 在shell命令行中进行查询
gtags-cscope : 在vim中利用 cscope一样的界面进行查询
生成数据库
生成GNU global数据库,以linux kernel为例:
$ make ARCH=arm gtags # 只生成arm的数据库
或
$ gtags # 不建议使用,默认会生成所有arch的数据库生成如下文件
GTAGS : definition database
GRTAGS: reference database
GPATH : path name database
查询
通过GNU global查询 函数在哪里定义 或 函数在哪里被调用等等,下面分别介绍shell, vim与vscode是如何进行查询
A. 通过shell进行查询
$ global -x <funcName> # 查找函数定义
$ global -rx <funcName> # 查找函数调用B. 通过vim进行查询
首先,在/etc/vim/vimrc.local添加如下配置
set cscopeprg=gtags-cscope
if filereadable("GTAGS")
cs add GTAGS
else
let gtags_file=findfile("GTAGS", ".;")
if !empty(gtags_file) && filereadable(gtags_file)
exe "cs add" gtags_file
endif
endif
nmap <C-@>g :cs find g <C-R>=expand("<cword>")<CR><CR> " Find function definition
nmap <C-@>c :cs find c <C-R>=expand("<cword>")<CR><CR> " Find function call然后,用vim打开某一个文件后,就可以通过ctrl-@ g查询 函数在哪里定义,通过ctrl-@ c查询 函数在哪里被调用
C. 通过vscode进行查询
首先,安装 C/C++ GNU Global插件
然后,用vscode打开某一个文件后,就可以通过右键->xxx查询 函数在哪里定义 或 函数在哪里被调用
Last updated
Was this helpful?