2014년 7월 11일 금요일

Doxygen으로 함수 call, caller 그래프 보기

소스코드를 분석 하는데 함수 호출 구조가 너무 복잡해서 그래프로 보고 싶었다.

1. doxygen 설치
sudo apt-get install doxygen

2. graphviz 설치
sudo apt-get install graphviz

OR

http://www.graphviz.org/
직접 다운로드

-바이너리 위치 조회
jinsol@jinsol:~$ which graphml2gv
/usr/bin/graphml2gv


3. config 설정을 위한 Doxyfile 생성
doxygen -g

4. Doxyfile 수정

-그래프 설정
CALL_GRAPH             = YES
CALLER_GRAPH           = YES


- Graphviz 바이너리 위치 설정
DOT_PATH               = /usr/bin/graphml2gv
HAVE_DOT               = YES

- 클래스 상속 구조 포함
CLASS_DIAGRAMS          = YES

- 그래프를 text가 아니라 그래픽 버전으로 보여줌
GRAPHICAL_HIERARCHY     = YES


- 대상 소스 폴더 지정
상대 경로 또는 절대 경로 지정 가능.

INPUT                  = ../
OR
INPUT                  = /home/jinsol/source/doc
RECURSIVE
- 대상 폴더의 하위 폴더도 대상으로 지정
RECURSIVE              = YES

- 생성되는 doc 파일이 많아지므로 하위폴더 생성
CREATE_SUBDIRS         = YES

- @internal 주석이 적힌 문서도 포함(NO일경우 미포함)
INTERNAL_DOCS          = YES

- 문서에 구현 소스도 포함
INLINE_SOURCES         = YES

- 문서에 소스파일 추가 (Files에서 조회 가능)
SOURCE_BROWSER         = YES



5. 문서 제작
jinsol@jinsol:~$ doxygen

html폴더에 문서 생성됨.

6. 문서 보기
firefox html/index.html로 문서 보기

우측 상단의 검색창을 이용해 자기가 원하는 함수를 볼 수 있음.
이런 크고 아름다운 그래프를 볼 수 있다.








(참조 : http://www.nicklib.com/devtools/661)

댓글 없음:

댓글 쓰기