리눅스
How to use ctags
김승목
2020. 11. 4. 12:06
ctags
소스코드를 분석해 소스코드 심볼(함수, 변수, 클래스 등)을 수집하고, 이 정보들을 모아 위치를 기록해 인덱싱하여 tags파일을 생성한다.
이 유틸은 vi로 소스코드 분석을 매우 편리하게 해준다.
usage
ctags -R
명령어를 프로젝트의 루트 디렉토리에서 실행해 tags 파일을 생성한다
vi로 tags파일을 열면 태그 / 파일 / 소스코드 정규식 순으로 프로젝트의 모든 심볼들이 저장되어있다.
여기서 tj(tags jmp) 명령어를 통해 원하는 함수명을 찾는다.
이 프로젝트의 모든 main 함수들이 나오고 점프하고싶은 main함수의 번호를 입력하면 위치로 간다.
코드를 분석하다가 점프하고 싶은 함수가 있으면 커서를 해당함수명으로 위치하고, ctrl + ] 를 입력하면 점프한다.
main함수에서 av_packet_alloc함수로 넘어왔는데 이전 위치로 가고싶으면 ctrl + t 를 입력하면 된다.
위 내용은 tags 파일을 직접 열어서 분석하는 방법이고 특정 파일에서 함수 원형을 찾고싶을때는 마찬가지로 프로젝트 루트 디렉토리에서 tags파일을 생성하고, ~/.vimrc파일에 아래와 같이 추가해주면 해당 경로의 tags 파일을 참조해 분석 가능하다.