반응형
Notice
Recent Posts
Recent Comments
관리 메뉴

꿈꾸는 사람.

리눅스 커널 소스에서 ARM 아키텍처의 ctags용 태그를 생성하는 tag.sh 스크립트 분석. 본문

IT/Linux

리눅스 커널 소스에서 ARM 아키텍처의 ctags용 태그를 생성하는 tag.sh 스크립트 분석.

현무랑 니니 2013. 6. 27. 18:19
반응형

리눅스 커널 소스를 분석할 때 방대한 소스로 인해 ctag와 cscope를 이용한다.

리눅스 커널에는 많은 아키텍처를 지원하는데 분석할 아키텍처별 ctags용 태그를 생성할 수 있는 tag.sh 스크립트를 제공한다. 이 스크립트는 커널 소스 바로 아래 scripts 디렉토리에 있다.


ARM용 태그를 생성하는 명령은 아래와 같다.

$ make tags ARCH=arm


이 명령은  커널 최상위 Makefile를 통하여 tag.sh 스크립트를 호출하게 된다.


파일 내의 tags란 타켓에서 $(call cmd, tags)를 실행하게 된다.

이것은 위 2번을 수행하는데 실제 아래와 같은 명령을 실행하게 된다.

$ /bin/bash ./scripts/tags.sh ctags ARCH=arm


위 명령이 실행하는 tags.sh 스크립트를 분석하자.

[원본 이미지는 첨부 파일을 참조.]


첫 패러미터인 tags로 xtags란 함수를 호출하게 된다.

case "$1" in

"tags")

rm -f tags

xtags ctags

;;

esac


시스템에 설치된 ctags의 버전이 Exuberant로 시작하면 exuberant 함수를 호출한다.

exuberant 함수가 모든 소스에 대한 태그를 생성하게 된다.


exuberant 함수를 분석하면 find와 xargs 도구로 태그를 생성하게 된다.

xargs에 대해서는 다음 분석에서 다루려 한다.


반응형
Comments