일상에서 멍때리기

[tools] cscope 활용하기 본문

프로그래밍/Tool And Utils

[tools] cscope 활용하기

로 얄 2014. 4. 14. 23:28
반응형

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

위 스크립트는 보이는 것과 같이 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

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



반응형

'프로그래밍 > 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