'ctags'에 해당되는 글 2건

  1. ctags 사용법 2010/12/23
  2. Linux Kernel 분석을 위한 약간의 팁(ctags, cscope) 2010/12/18

ctags 사용법

from [ IT ]/Ubuntu 2010/12/23 23:40
1. 설치
~$ sudo apt-get install ctags

2. 분석하려는 Kernel 코드의 tag 파일 생성 - 1
~$ pwd
~/linux-2.6.36.2

~$ctags -R
~$ ls tags
tags
    - -R 은 현재 위치에서 Recursive 하게 하위 디렉토리까지 Parsing 하는 옵션임

c++ 파일에 대해 tag 를 생성할 때는 다음과 같이 하면 된다.
~$ ctags -R --language-force=c++ --extra=+q --fields=+i *.cpp *.h


3. 분석하려는 Kernel 코드의 tag 파일 생성 - 2
~$ pwd
~/linux-2.6.36.2

~$ make tags
~$ ls tags
tags

4. vi(vim, gvim) 에서 사용법
~$ pwd
~/linux-2.6.36.2

~$ vim -t start_kernel
    - tags 파일이 있는 곳에서 실행해야 함

<C-]> : 커서 위치에 있는 단어를 검색하여 해당 파일로 이동
<C-t> : 이동 전 파일로 돌아가기

vi command mode 에서
:ta 검색어 : 검색어가 정의된 곳으로 이동 (첫번재 발견된 곳으로 이동하므로 부정확할 수 있음)
:tn           : 그 다음 정의된 곳으로 이동
:tp           : 그 전 정의된 곳으로 이동
:ts 검색어 : 검색어가 정의된 리스트를 조회 후 선택 이동
                  검색어를 입력 안 한 경우 바로 직전에 검색했던 리스트가 다시 보여짐
:tags         이동한 이력 목록을 출력


5. 기타
vim 환경설정파일에 다음과 같이 입력하면 ctags 검색 속도 개선이 된다.
~$ vim ~/.vimrc

#다음라인 추가
set tagbsearch


크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기
2010/12/23 23:40 2010/12/23 23:40
Tag // , ,

댓글을 달아 주세요

[로그인][오픈아이디란?]

ctags  를 사용하기 위해서 -R 이라는 옵션으로  tag 파일을 생성해 주어야 한다.

~$ pwd
~/linux-2.6.36.2

~$ ctags -R
~$ ls tags
tags
    (참고로 Kernel Source 는 ~/ (사용자 Home 디렉토리) 에 다운 받아 놓은 상태임)

cscope 도 마찬가지이다.
~$ pwd
~/linux-2.6.36.2

~$ cscope -R -b
~$ ls cscope.out
cscope.out

위와 같은 방법으로 하면 문제가 내가 원하지 않는 소스 코드까지 Parsing 이 된다는 것이다.
현재 분석하려는 Source 가 x86 이라면 ARM 이나 기타 다른 Source 들은 불필요하다.

이때 유용한 것이 있다.
~$ pwd
~/linux-2.6.36.2

~$ make tags
~$ make cscope
~$ ls tags cscope.out
cscope.out tags
    - 따로 ctags -R 이나 cscope -R 로 해당 파일을 생성하지 않아도 됨

이는 Linux Kernel 에서 기본적으로 제공하는 기능이다.
최상위에 존재하는 Makefiles 을 보면 이런 기능이 어떻게 동작하는지 알 수 있다.
make 를 이용하기 때문에 실제 빌드 되는 코드들에 대해서만 처리해준다.


크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기
2010/12/18 12:39 2010/12/18 12:39
Tag // , , ,

댓글을 달아 주세요

[로그인][오픈아이디란?]