GNU global 과 VIM 그리고 gtags.vim 플러그인을 추천합니다.
cscope와 tags에 비해 아주 정확한 확율로 원하는 것을 찾아주는 것 같습니다.
이번주 스터디에 한번 써먹어 보고 괜찮다 싶으면 후기 올리겠습니다.
설치방법을 소개합니다.
-------------------------------------
Debian 계열 우분투 사용하신다면 global 버전이 구버전(5.7)이라 웹사이트에서 다운받아서 설치해야 하구요.
http://www.gnu.org/software/global/download.html
gtags (global)설치는 이렇게 합니다.
configure make sudo make install
그리고 .vimrc에 추가할 것이 있는데 gtags.vim플러그인 설치 후에
다음 키맵 넣어주시면 됩니다.
nmap <C-n> :cn<CR> nmap <C-p> :cp<CR> nmap <C-><C-]> :GtagsCursor<CR>
그리고 디비 생성:
make gtags
이후 vim 에서 위 키맵에 설정한 것과 같이 사용합니다.
Ctrl + + ] : 탐색
Ctrl + n : 다음 탐색
Ctrl + p : 이전 탐색
커맨드로 start_kernel 함수를 찾으려면 이렇게 합니다.
:Gtags start_kernel
댓글 8
-
K
2013.07.02 09:43
-
리누즈박
2013.07.02 12:43
지금은 Kconfig안에 있는 것 ctrl + ] 로 찾아집니당 ^^ -
쿨쿨
2013.07.02 12:09
지금도 Kconfig 안에 있는 것은 찾기 힘들지 않나요? ^^
그렇다면 심플하게 gtags를 만들어서 사용하는 것도 나쁘지 않을 것 같은데요 ^^
-
리누즈박
2013.07.02 09:49
커널에 make gtags 가 있어서 써봤는데 멀티아키텍쳐 지원됩니다 ㅋㅋ
장점은 define된걸 확실히 찾아줘서 목록수가 줄어든다는것이고
단점은 CONFIG_XXX같은 Kconfig안에 있는건 못찾습니다. cscope랑 ctag랑 섞어써야 할 것 같습니다 ^^ -
kmasta
2013.07.02 12:40
어떤 장점이 있는지 확인해볼 필요는 있겠네요 해봐야겠어요 ㅎ
-
HyunGyu
2013.07.02 15:38
사용법은 ctags와 같은가요??
아침에 조금 찾아봤는데.. 설치 방법만 다들 말씀을 해주시더라구요.ㅋ
편하다면 저도 사용 해 보고 싶네요~ -
리누즈박
2013.07.02 16:52
Debian 계열 우분투 사용하신다면 global 버전이 구버전(5.7)이라 웹사이트에서 다운받아서 설치해야 하구요.
http://www.gnu.org/software/global/download.html
gtags (global)설치는 이렇게 합니다.
configure make sudo make install
그리고 .vimrc에 추가할 것이 있는데 gtags.vim플러그인 설치 후에
다음 키맵 넣어주시면 됩니다.
nmap <C-n> :cn<CR> nmap <C-p> :cp<CR> nmap <C-><C-]> :GtagsCursor<CR>
그리고 디비 생성:
make gtags
이후 vim 에서 위 키맵에 설정한 것과 같이 사용합니다.
Ctrl + + ] : 탐색
Ctrl + n : 다음 탐색
Ctrl + p : 이전 탐색
커맨드로 start_kernel 함수를 찾으려면 이렇게 합니다.
:Gtags start_kernel
-
리누즈박
2013.07.02 16:54
본문에 설치방법 업데이트 했습니다.
많은 이용 바랍니다.
.
오~ 툴 소개 이런거 좋아합니다.
cscope와 tags 보다 좋다면 갈아타야지요.. ^^
사용해보실 때 아래 사항도 함께 확인해주세요~ ^^
ctags는 symbol definition을 찾아갈 때, 여러 architecture에 있는 동일한 symbol을 다 찾아주는걸로 들었습니다. (제가 확인한 건 아님)
kernel 소스에서는 이를 방지하기 위해 make ARCH=arm tags, make ARCH=arm cscope로 ARM용 symbol로만 이루어진 database를 만든다고 들었습니다. (역시 제가 확인하지 않았음.. 모기향책 참고)
GNU global과 gtags.vim 플러그인이 이런 multi-architecture 소스구조에서도 더 나은 성능을 발휘하는지 궁금합니다.