일상에서 멍때리기
[tools] cscope 활용하기 본문
반응형
ctags와 함께 vim유저에게 많은 사랑을 받고 있는 툴 cscope입니다.
저는 여지껏 cscope -R 을 사용해서 아주 일부적인 기능만을 사용하고 있었습니다.
그러던중 '리눅스 유닉스 필수유틸리티' 책을 읽다 내용이 있어 포스팅을 합니다.
cscope가 없다면 cscope를 설치 해주시기 바랍니다.
우선 cscope.out파일을 만들기 위한 간단한 스크립트입니다 .
#!/bin/bash
rm -rf cscope.out cscope.files
find . \( -name '*.c' -o -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.s' -o -name '*.S' \) -print > cscope.files
cscope -i cscope.files
rm -rf cscope.out cscope.files
find . \( -name '*.c' -o -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.s' -o -name '*.S' \) -print > cscope.files
cscope -i cscope.files
위 스크립트는 보이는 것과 같이 C와 CPP 소스파일 및 어셈블리 소스(.s .S)를 찾아 cscope.files에 파일리스트를 만듭니다. 그 후 cscope -i cscope.files 명령으로 파일리스트에 있는 파일을 cscope가 한 줄씩 읽어들여 cscope.out 심볼테이터베이스 파일을 생성합니다.
기존 source에 없는 standard library들을 검색하기 위해서 '/bin/src/linux-XX 디렉토리에도 위의 스크립트를 수행하여 cscope.out파일을 생성합니다.
마지막으로 cscope를 vim에서 사용하기 위하여 ~/.vimrc에 아래의 내용을 추가하도록 합니다.
"===========cscope================
set csprg=/usr/bin/cscope
set csto=0
set cst
set nocsverb
if filereadable("./cscope.out")
cs add cscope.out
else
cs add /usr/src/linux-XX/cscope.out
endif
set csverb
set csprg=/usr/bin/cscope
set csto=0
set cst
set nocsverb
if filereadable("./cscope.out")
cs add cscope.out
else
cs add /usr/src/linux-XX/cscope.out
endif
set csverb
cscope를 사용하기 위한 셋팅이 끝났습니다.
이제 vim에서 cscope를 사용하기 위한 명령형식을 알아볼 차례입니다.
질의 종류는 아래를 참조하면됩니다.
이제 vim에서 cscope를 사용하기 위한 명령형식을 알아볼 차례입니다.
:cs find {질의 종류} {심볼}
질의 종류는 아래를 참조하면됩니다.
0 or s : Find this C symbol
1 or g : Find this definition
2 or d : Find functions called by this function
3 or c : Find functions calling by this function
4 or t : Find assignment to
5 or e : Find this egrep pattern
6 or f : Find this file
7 or i : Find file #including this file
1 or g : Find this definition
2 or d : Find functions called by this function
3 or c : Find functions calling by this function
4 or t : Find assignment to
5 or e : Find this egrep pattern
6 or f : Find this file
7 or i : Find file #including this file
반응형
'프로그래밍 > Tool And Utils' 카테고리의 다른 글
homebrew (1) | 2014.04.15 |
---|---|
macport (0) | 2014.04.15 |
eclipse에서 vi mode사용하기 (0) | 2014.04.14 |
[Ubuntu] 유용한 유틸 - 그림판 kolourpaint (0) | 2014.04.14 |
[vim] 유용한 vim plugin - taglist (0) | 2014.04.14 |
[Tool]dumpbin.exe 알아보기 (0) | 2014.04.14 |
fossil에 대하여 (0) | 2014.04.14 |
Comments