리눅스 & 안드로이드2016. 1. 19. 10:05

주변 사람들이 android 소스 볼 때는 vi를 사용해야 한다고 충고(조언?)을 하는데, 개인적으로 소스 분석에 Source Insight 만큼 편리한 도구가 없다고 생각한다. 특히나 소스의 규모가 크면 클수록 말이다.


그래서, AOSP 소스에서 필요한 파일들을 선택적으로 프로젝트 구성하여 사용하고 있는데, Source Insight에서 일부 source parsing에 문제가 발생해서 불편한 경우들이 있다. 이 문제를 해결하는 방법을 알게되어 정리 해 둔다.


대표적인(?) 예가, __BEGIN_DECLS 인데,

위와 같이 정의가 되어 있고, (https://android.googlesource.com/platform/bionic/+/android-6.0.1_r10/libc/include/sys/cdefs.h), 아래와 같이 사용되고 있다. (http://androidxref.com/6.0.1_r10/xref/system/core/include/system/window.h)


위와 같이 __BEGIN_DECLS 이후로는 parsing이 제대로 되지 않아, symbol 인식이 되지 않는다.


이 문제를 해결하는 방법은 간단하다. Project Source Directory (메뉴 Project > Project Settings... > Project Source Directory - the main location of your source files:)에 c.tom이라는 파일을 생성해서, parsing 과정에서 무시하고 넘어가도록 하고 싶은 macro를 한 줄에 하나씩 (아래와 같이) 추가 해 주면 된다.


__BEGIN_DECLS

__END_DECLS


위와 같이 c.tom 파일을 생성한 후에는 전체 프로젝트를 다시 parsing 해 주어야 한다. (메뉴 Project > Synchronize Files... > Force all files to be re-parsed)


참고로, 아래 링크에 이와 관련된 도움말이 존재한다 -0-

http://www.sourceinsight.com/docs35/af914775.htm

Posted by 세월의돌