ctags / cscope
- 리눅스에서 길고 복잡한 코드를 다룰때 유용한 유틸리티 두가지.
-
ctags
- 소스 코드의 태그(변수, 함수, 매크로 등의 선언 부분)들의 데이터 베이스 파일을 생성해 인덱스를 만들어 주어, 코드 분석 시 탐색할 수 있도록 하는 유틸리티이다.sudo apt-get install ctags - tags 파일을 생성하여 소스 코드의 태그를 데이터 베이스로 관리할 수 있다.ctags "Filename" ctags -R - 위 두 명령어처럼 ctags 다음에 파일 이름을 명시하는 것으로 해당 파일만 tags 파일을 만들거나, 아래 ctags -R처럼 현재 디렉토리의 모든 파일/ 하위 디렉토리의 모든 파일을 대상으로 tags 파일을 만들 수 있다.- vi 에디터에 tags 파일 경로를 등록하여 vi 에디터와 ctags를 연동할 수 있다.~/.vimrc를 열어 다음을 추가한다.set tags="tags root" - "tags root"에 vi에디터에 등록할 tag 파일의 위치를 넣는다. -
cscope
- cscope는 다음처럼 설치하고 설정한다.apt-get install cscope - /usr/bin/ 아래에 mkcscope.sh 파일을 만들고 다음을 붙여넣고 저장한다.#!/bin/sh rm -rf cscope.files 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 - 파일 퍼미션을 설정한다.chmod 755 mkcscope.sh - 쉘에서 mkcscope.sh를 실행하여 cscope.out 파일을 생성한다. 약간의 시간 이후 Cscope version이 출력되면 ctrl+d를 눌러 빠져 나올 수 있다.ls -al | grep cscope - cscope로 된 파일명 리스트를 출력시 cscope.files 와 cscope.out 두개를 확인 할 수 있을 것이다.- vi와 연동을 위해 vi ./vimrc로 파일을 열어 아래 코드를 붙여넣고 저장한다.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/cscope.out endif set csverb