본문 바로가기
IT 기술/개발환경_유틸 관련 팁

[vi] cscope update db

by 땅뚱 2013. 8. 1.

vi 에서 cscope 를 사용하다가 보면 소스를 수정함에 따라서 원래 설정되었던 Symbol 데이터베이스의 위치가 달라져서 엉뚱한 곳으로 점프하게 되는 경우가 발생한다. 이런 경우에 자동으로 재빌드 해주면 좋겠는데, 그런 것은 아직 못찾아봤고, 몇군데 검색해보다가 알게된 내용을 적어본다.

vi 에서 cscope db 를 업데이트하는 방법

:!cscope -Rbq

:cs reset

참고) cscope 는 처음에 검색할 프로그램의 소스파일에서 사용된 cross-reference symbol 을 빌드한다. 그리고 다음에 실행될 때는 소스 파일 목록이 다르거나, 변경된 소스파일이 있는 경우에 cross-reference 를 재빌드한다. cross-reference 가 재빌드될 때, 변경되지 않은 파일의 데이터는 이전 cross-refenece 로부터 복사된다. 따라서 초기 빌드보다 더 빠르게 재빌드 할 수 있다.

cscope 명령 옵션

-b : build the cross-refernece only

-R : 하위 디렉토리까지 소스파일을 검색하도록 하는 옵션

-q : inverted index 를 사용하여 빠른 심볼 검색을 가능하게 한다. 이 옵션은 기존 보통의 심볼 데이터베이스에 추가적으로 2개의 파일을 더 생성한다.(cscope.in.out, cscope.po.out) 이것은 더 빠른 심볼 검색 알고리즘을 사용할 수 있도록 해주고, 그에 따라서 큰 프로젝트에서 매우 빠른 검색 성능을 제공한다.