일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- ubuntu
- 안드로이드
- 애플
- 리뷰
- 프로야구
- python
- 김경문
- arm
- 조세피난처
- 데이터베이스
- NC다이노스
- 뉴스타파
- NC 다이노스
- 블로그
- 국정원
- 타이젠
- Linux
- 문파문파
- 단통법
- 우분투
- 인공지능
- 문파문파 공략
- 해외직구
- 디자인 패턴
- Tizen
- 야구
- mysql
- ubuntu 12.04
- 손민한
- 태그를 입력해 주세요.
Archives
- Today
- Total
꿈꾸는 사람.
리눅스 커널 소스에서 ARM 아키텍처의 ctags용 태그를 생성하는 tag.sh 스크립트 분석. 본문
반응형
리눅스 커널 소스를 분석할 때 방대한 소스로 인해 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에 대해서는 다음 분석에서 다루려 한다.
반응형
'IT > Linux' 카테고리의 다른 글
[Linux] Ubuntu 11.04를 11.10로 upgrade. (12.04 업그레이드 중간 과정) (0) | 2013.08.20 |
---|---|
[Linux] BSS란 무엇인가? (0) | 2013.07.18 |
VIM 플러그인 내려받고 환경 설정하기. (0) | 2013.07.08 |
Ubuntu 11.04에서 apt-get 실행하면 404 오류 나는 이유. (0) | 2013.07.04 |
apt-get update에서 발생하는 GPG public key 오류 해결 방법. (4) | 2013.07.04 |
Comments