Generate callgraphs with Doxygen - minsuk-jang/teamproject GitHub Wiki

doxygen์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒํ˜ธ ์ฐธ์กฐ๊ฐ€ ์žˆ๋Š” ์ฃผ์„์ด ๋‹ฌ๋ฆฐ ์†Œ์Šค ์ฝ”๋“œ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ neovim์— ์žˆ๋Š” ๋ชจ๋“  ํ•จ์ˆ˜์˜ call ๊ทธ๋ž˜ํ”„๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (ํ˜„์žฌ neovim์€ doxygen ์ฃผ์„์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค)

๊ทธ๋ ‡๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” neovim ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” ์ ์ ˆํ•œ ์„ค์ • ํŒŒ์ผ์„ ๊ฐ€์ง€๊ณ  doxygen ๋ช…๋ น์„ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

doxygen configfile

-g ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ doxygen์œผ๋กœ ๊ธฐ๋ณธ ์„ค์ • ํŒŒ์ผ์„ ์ƒ์„ฑ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

doxygen -g configfilename

call ๊ทธ๋ž˜ํ”„๋ฅผ ์ƒ์„ฑํ•˜๋ ค๋ฉด doxygen ๊ตฌ์„ฑ ํŒŒ์ผ์— ๋‹ค์Œ ์˜ต์…˜์„ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

# This first one is optional
PROJECT_NAME           = "Neovim"
OPTIMIZE_OUTPUT_FOR_C  = YES
EXTRACT_ALL            = YES
EXTRACT_STATIC         = YES
# Set only the dirs you want
INPUT                  = src/ test/
RECURSIVE              = YES
SOURCE_BROWSER         = YES
HAVE_DOT               = YES
# Set according to your system
DOT_NUM_THREADS        = 3
CALL_GRAPH             = YES
CALLER_GRAPH           = YES

(์œ„์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ ์šฉ๋œ ๊ธฐ๋ณธ ์„ค์ • ํŒŒ์ผ์€ here์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

doxygen์„ ์‹œ์ž‘ํ•  ๋•Œ ์„ค์น˜๋˜๋Š” dot ํ”„๋กœ๊ทธ๋žจ (graphviz ๋„๊ตฌ ๋ชจ์Œ)์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. Doxygen์€ ์ด๊ฒƒ์„ ํ˜ธ์ถœํ•˜์—ฌ ๊ทธ๋ž˜ํ”„๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

**์ฃผ์˜ : ** ์œ„์˜ ๊ตฌ์„ฑ์œผ๋กœ ์ธํ•ด doxygen์ด ์•ฝ 30๋ถ„ ๋™์•ˆ ์‹คํ–‰๋˜๊ณ  ์•ฝ 2.1GB ์ƒ๋‹น์˜ ๋ฌธ์„œ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

callgraphs์˜ ์ตœ์‹  ๋ฒ„์ „์„ ์œ„ํ•ด์„œ๋Š” here์— ์•ก์„ธ์Šค ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.