Ubuntu Online, Fedora Online, Windows ์จ๋ผ์ธ ์๋ฎฌ๋ ์ดํฐ ๋๋ MAC OS ์จ๋ผ์ธ ์๋ฎฌ๋ ์ดํฐ์ ๊ฐ์ ์ฌ๋ฌ ๋ฌด๋ฃ ์จ๋ผ์ธ ์ํฌ์คํ ์ด์ ์ค ํ๋๋ฅผ ์ฌ์ฉํ์ฌ OnWorks ๋ฌด๋ฃ ํธ์คํ ๊ณต๊ธ์์์ ์คํํ ์ ์๋ aarch64-linux-gnu-gcov-4.8 ๋ช ๋ น์ ๋๋ค.
ํ๋ก๊ทธ๋จ:
์ด๋ฆ
gcov - ์ปค๋ฒ๋ฆฌ์ง ํ ์คํธ ๋๊ตฌ
๊ฐ์
gcov [-v|--๋ฒ์ญ] [-h|--๋์]
[-a|--๋ชจ๋ ๋ธ๋ก]
[-b|--๋ถ๊ธฐ ํ๋ฅ ]
[-c|--๋ถ๊ธฐ ์]
[-u|--๋ฌด์กฐ๊ฑด ๋ถ๊ธฐ]
[-n|--์ถ๋ ฅ ์์]
[-l|--๊ธด ํ์ผ ์ด๋ฆ]
[-p|--๊ฒฝ๋ก ๋ณด์กด]
[-r|--์๋์ ์ผ๋ก๋ง]
[-f|--๊ธฐ๋ฅ ์์ฝ]
[-o|--๊ฐ์ฒด ๋๋ ํ ๋ฆฌ ๋๋ ํ ๋ฆฌ|ํ์ผ]
[-s|--์์ค ์ ๋์ฌ ์๋ฐฐ ๊ท์น์]
[-d|--๋์คํ๋ ์ด ์งํ]
ํ์ผ
๊ธฐ์
gcov ํ ์คํธ ์ปค๋ฒ๋ฆฌ์ง ํ๋ก๊ทธ๋จ์ ๋๋ค. GCC์ ํจ๊ป ์ฌ์ฉํ์ฌ ํ๋ก๊ทธ๋จ์ ๋ถ์ํ์ฌ
๋ณด๋ค ํจ์จ์ ์ด๊ณ ๋น ๋ฅด๊ฒ ์คํ๋๋ ์ฝ๋๋ฅผ ๋ง๋ค๊ณ ํ ์คํธ๋์ง ์์ ๋ถ๋ถ์ ๋ฐ๊ฒฌํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
ํ๋ก๊ทธ๋จ. ๋น์ ์ด ์ฌ์ฉํ ์์๋ gcov ์ต์ ํ ์์น๋ฅผ ์ฐพ๋ ๋ฐ ๋์์ด ๋๋ ํ๋กํ์ผ๋ง ๋๊ตฌ
๋ ธ๋ ฅ์ ์ฝ๋์ ๊ฐ์ฅ ํฐ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ๋น์ ์ ๋ํ ์ฌ์ฉํ ์ ์์ต๋๋ค gcov ๋ค๋ฅธ ํ๋กํ์ผ๋ง๊ณผ ํจ๊ป
๋๊ตฌ gprof, ์ฝ๋์ ์ด๋ ๋ถ๋ถ์ด ์ปดํจํ ์๊ฐ์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋์ง ํ๊ฐํฉ๋๋ค.
ํ๋กํ์ผ๋ง ๋๊ตฌ๋ ์ฝ๋์ ์ฑ๋ฅ์ ๋ถ์ํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ๋ค์๊ณผ ๊ฐ์ ํ๋กํ์ผ๋ฌ๋ฅผ ์ฌ์ฉํ์ฌ gcov
or gprof, ๋ค์๊ณผ ๊ฐ์ ๋ช ๊ฐ์ง ๊ธฐ๋ณธ ์ฑ๋ฅ ํต๊ณ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
ยท ๊ฐ ์ฝ๋ ๋ผ์ธ์ด ์คํ๋๋ ๋น๋
ยท ์ค์ ๋ก ์คํ๋๋ ์ฝ๋ ์ค
ยท ์ฝ๋์ ๊ฐ ์น์ ์ด ์ฌ์ฉํ๋ ์ปดํจํ ์๊ฐ
์ฝ๋๊ฐ ์ปดํ์ผ๋ ๋ ์๋ํ๋ ๋ฐฉ์์ ๋ํด ์ด๋ฌํ ์ฌํญ์ ์๊ณ ๋๋ฉด ๊ฐ๊ฐ์ ๋ณผ ์ ์์ต๋๋ค.
์ด๋ค ๋ชจ๋์ ์ต์ ํํด์ผ ํ๋์ง ํ์ธํ๋ ๋ชจ๋์ ๋๋ค. gcov ์ผํ ๊ณณ์ ๊ฒฐ์ ํ๋ ๋ฐ ๋์์ด๋ฉ๋๋ค.
์ต์ ํ์.
์ํํธ์จ์ด ๊ฐ๋ฐ์๋ ๋ํ ํ ์คํธ ์ค์ํธ์ ํจ๊ป ์ปค๋ฒ๋ฆฌ์ง ํ ์คํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์์ ํ์ธํฉ๋๋ค.
์ํํธ์จ์ด๋ ์ค์ ๋ก ์ถ์ํ๊ธฐ์ ์ถฉ๋ถํฉ๋๋ค. ํ ์คํธ ์ค์ํธ๋ ํ๋ก๊ทธ๋จ์ด
์์๋๋ก ์๋ํฉ๋๋ค. ๋ณด์ฅ ํ๋ก๊ทธ๋จ ํ ์คํธ๋ฅผ ํตํด ์ผ๋ง๋ ๋ง์ ํ๋ก๊ทธ๋จ์ด ์คํ๋์๋์ง ํ์ธํฉ๋๋ค.
ํ ์คํธ ์ค์ํธ. ๊ทธ๋ฐ ๋ค์ ๊ฐ๋ฐ์๋ ์ถ๊ฐํด์ผ ํ๋ ํ ์คํธ ์ผ์ด์ค์ ์ข ๋ฅ๋ฅผ ๊ฒฐ์ ํ ์ ์์ต๋๋ค.
๋ ๋์ ํ ์คํธ์ ๋ ๋์ ์ต์ข ์ ํ์ ๋ง๋ค๊ธฐ ์ํ ํ ์คํธ ์ค์ํธ.
์ฌ์ฉํ๋ ค๋ ๊ฒฝ์ฐ ์ต์ ํ ์์ด ์ฝ๋๋ฅผ ์ปดํ์ผํด์ผ ํฉ๋๋ค. gcov ๋๋ฌธ์
๋ช ์ค์ ์ฝ๋๋ฅผ ํ๋์ ๊ธฐ๋ฅ์ผ๋ก ๊ฒฐํฉํ์ฌ ์ต์ ํ๋ฅผ ์ํํ๋ฉด
์ฝ๋๊ฐ ๋ง์ ๋ถ๋ถ์ ์ฌ์ฉํ๋ 'ํซ์คํ'์ ์ฐพ๋ ๋ฐ ํ์ํ ์ ๋ณด
์ปดํจํฐ ์๊ฐ. ๋ง์ฐฌ๊ฐ์ง๋ก, ๋๋ฌธ์ gcov ๋ผ์ธ๋ณ๋ก ํต๊ณ๋ฅผ ๋์ ํฉ๋๋ค(์ต์
resolution), ๊ฐ๊ฐ์ ํ๋์ ๋ช ๋ น๋ฌธ๋ง ๋ฐฐ์นํ๋ ํ๋ก๊ทธ๋๋ฐ ์คํ์ผ์์ ๊ฐ์ฅ ์ ์๋ํฉ๋๋ค.
์ . ๋ฃจํ๋ ๋ค๋ฅธ ์ ์ด ๊ตฌ์กฐ๋ก ํ์ฅ๋๋ ๋ณต์กํ ๋งคํฌ๋ก๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ
ํต๊ณ๋ ๋ ์ ์ฉํฉ๋๋ค---๋งคํฌ๋ก ํธ์ถ์ด ์๋ ํ์ ๋ํด์๋ง ๋ณด๊ณ ํฉ๋๋ค.
๋ํ๋ฉ๋๋ค. ๋ณต์กํ ๋งคํฌ๋ก๊ฐ ํจ์์ฒ๋ผ ์๋ํ๋ ๊ฒฝ์ฐ ์ธ๋ผ์ธ์ผ๋ก ๋์ฒดํ ์ ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ธฐ๋ฅ.
gcov ๋ผ๋ ๋ก๊ทธ ํ์ผ์ ์์ฑํฉ๋๋ค. ์์คํ์ผ.gcov ๊ฐ ๋ผ์ธ์ ํ์๋ฅผ ๋ํ๋ ๋๋ค.
์์ค ํ์ผ ์์คํ์ผ.c ์คํํ์ต๋๋ค. ์ด ๋ก๊ทธ ํ์ผ์ ๋ค์๊ณผ ํจ๊ป ์ฌ์ฉํ ์ ์์ต๋๋ค. gprof ์
ํ๋ก๊ทธ๋จ์ ์ฑ๋ฅ์ ๋ฏธ์ธ ์กฐ์ ํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. gprof ํ์ด๋ฐ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค
์์ ์ป์ ์ ๋ณด์ ํจ๊ป ์ฌ์ฉํ ์ ์์ต๋๋ค. gcov.
gcov GCC๋ก ์ปดํ์ผ๋ ์ฝ๋์์๋ง ์๋ํฉ๋๋ค. ๋ค๋ฅธ ํ๋กํ์ผ๋ง๊ณผ ํธํ๋์ง ์์ต๋๋ค.
๋๋ ํ ์คํธ ์ปค๋ฒ๋ฆฌ์ง ๋ฉ์ปค๋์ฆ.
์ต์
-h
--๋์
์ฌ์ฉ์ ๋ํ ๋์๋ง ํ์ gcov (ํ์ค ์ถ๋ ฅ์์) ์๋ฌด ์์ ๋ ์ํํ์ง ์๊ณ ์ข ๋ฃ
์ถ๊ฐ ์ฒ๋ฆฌ.
-v
--๋ฒ์ญ
๊ทธ gcov ๋ฒ์ ๋ฒํธ(ํ์ค ์ถ๋ ฅ์์), ์๋ฌด ์์ ๋ ์ํํ์ง ์๊ณ ์ข ๋ฃ
์ถ๊ฐ ์ฒ๋ฆฌ.
-a
--๋ชจ๋ ๋ธ๋ก
๋ชจ๋ ๊ธฐ๋ณธ ๋ธ๋ก์ ๋ํ ๊ฐ๋ณ ์คํ ํ์๋ฅผ ์๋๋ค. ์ผ๋ฐ์ ์ผ๋ก gcov ์ถ๋ ฅ
์คํ์ ๋ผ์ธ์ ์ฃผ์ ๋ธ๋ก์ ๋ํด์๋ง ๊ณ์ฐ๋ฉ๋๋ค. ์ด ์ต์ ์ ์ฌ์ฉํ๋ฉด
ํ ์ค์ ์๋ ๋ธ๋ก์ด ์คํ๋๊ณ ์์ง ์์์ง ํ์ธํฉ๋๋ค.
-b
--๋ถ๊ธฐ ํ๋ฅ
๋ถ๊ธฐ ์ฃผํ์๋ฅผ ์ถ๋ ฅ ํ์ผ์ ์ฐ๊ณ ๋ถ๊ธฐ ์์ฝ ์ ๋ณด๋ฅผ
ํ์ค ์ถ๋ ฅ. ์ด ์ต์ ์ ์ฌ์ฉํ๋ฉด ํ๋ก๊ทธ๋จ์ ๊ฐ ๋ถ๊ธฐ๊ฐ ์ผ๋ง๋ ์์ฃผ
์ฐ์. ์กฐ๊ฑด๋ถ ๋ถ๊ธฐ๋ ํ์๋์ง ์์ต๋๋ค. -u ์ต์ ์ด ์ฃผ์ด์ง๋๋ค.
-c
--๋ถ๊ธฐ ์
๋ฐฑ๋ถ์จ์ด ์๋ ์ทจํ ๋ถ๊ธฐ ์๋ก ๋ถ๊ธฐ ๋น๋๋ฅผ ์์ฑํ์ญ์์ค.
์ ์ง์ ์ ๋๋ค.
-n
--์ถ๋ ฅ ์์
์์ฑํ์ง ๋ง์ญ์์ค gcov ๊ฒฐ๊ณผ๋ฌผ ํ์ผ.
-l
--๊ธด ํ์ผ ์ด๋ฆ
ํฌํจ๋ ์์ค ํ์ผ์ ๋ํด ๊ธด ํ์ผ ์ด๋ฆ์ ๋ง๋ญ๋๋ค. ์๋ฅผ ๋ค์ด ํค๋ ํ์ผ์ด ์์ค
์ฝ๋๋ฅผ ํฌํจํ๊ณ ํ์ผ์ ํฌํจ๋์์ต๋๋ค. ๊ต๋ฅ, ์คํ gcov ํ์ผ์ ๊ต๋ฅ
๋ผ๋ ์ถ๋ ฅ ํ์ผ์ ์์ฑํฉ๋๋ค. ac##xhgcov ๋์ xhgcov. ์ด๊ฒ์ ๋ ์์๋ค
์ ์ฉํ ๊ฒฝ์ฐ ์์ค ์ฌ๋ฌ ์์ค ํ์ผ์ ํฌํจ๋์ด ์์ผ๋ฉฐ ๊ฐ๋ณ
๊ธฐ๋ถ๊ธ. ์ฌ์ฉํ๋ ๊ฒฝ์ฐ -p ์ต์ , ํฌํจ ๋ฐ ํฌํจ๋ ํ์ผ ์ด๋ฆ ๋ชจ๋
์์ ํ ๊ฒฝ๋ก ์ด๋ฆ์ด ๋ฉ๋๋ค.
-p
--๊ฒฝ๋ก ๋ณด์กด
์์ฑ๋ ์ด๋ฆ์ ์ ์ฒด ๊ฒฝ๋ก ์ ๋ณด๋ฅผ ์ ์งํฉ๋๋ค. .gcov ํ์ผ. ์์ด
์ด ์ต์ ์์๋ ํ์ผ ์ด๋ฆ ๊ตฌ์ฑ ์์๋ง ์ฌ์ฉ๋ฉ๋๋ค. ์ด ์ต์ ์ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ๋๋ ํ ๋ฆฌ
์ ํจ๊ป ์ฌ์ฉ๋ฉ๋๋ค / ๋ก ๋ฒ์ญ๋ ๋ฌธ์ # ๋ฌธ์, . ์ ๊ฑฐ๋ ๋๋ ํ ๋ฆฌ ๊ตฌ์ฑ ์์
์ ๊ฑฐํ ์ ์๋ .. ๋ก ์ด๋ฆ์ด ๋ณ๊ฒฝ๋ ๊ตฌ์ฑ์์ ^. ์์ค ํ์ผ์ด ๋ค์ ์์น์ ์๋ ๊ฒฝ์ฐ ์ ์ฉํฉ๋๋ค.
์ฌ๋ฌ ๋ค๋ฅธ ๋๋ ํ ๋ฆฌ.
-r
--์๋์ ์ผ๋ก๋ง
์๋ ๊ฒฝ๋ก ์ด๋ฆ์ด ์๋ ์์ค ํ์ผ์ ๋ํ ์ ๋ณด๋ง ์ถ๋ ฅํฉ๋๋ค(source ๋ค์
์ ๋์ฌ ์๋ต). ์ ๋ ๊ฒฝ๋ก๋ ์ผ๋ฐ์ ์ผ๋ก ์์คํ ํค๋ ํ์ผ์ด๋ฉฐ ๋ชจ๋
์ธ๋ผ์ธ ํจ์๋ ์ผ๋ฐ์ ์ผ๋ก ํฅ๋ฏธ๋กญ์ง ์์ต๋๋ค.
-f
--๊ธฐ๋ฅ ์์ฝ
ํ์ผ ์์ค ์์ฝ ์ธ์ ๊ฐ ๊ธฐ๋ฅ์ ๋ํ ์ถ๋ ฅ ์์ฝ.
-o ๋๋ ํ ๋ฆฌ|ํ์ผ
--๊ฐ์ฒด ๋๋ ํ ๋ฆฌ ์๋ฐฐ ๊ท์น์
--๊ฐ์ฒด ํ์ผ ํ์ผ
gcov ๋ฐ์ดํฐ ํ์ผ์ด ํฌํจ๋ ๋๋ ํฐ๋ฆฌ ๋๋ ๊ฐ์ฒด ๊ฒฝ๋ก ์ด๋ฆ์ ์ง์ ํฉ๋๋ค.
์ด ์ดํ๋ฆฌ์ผ์ด์ ์๋ XNUMXยตm ๋ฐ XNUMXยตm ํ์ฅ์์ ์ต๋ XNUMXW์ ํ๊ท ์ถ๋ ฅ์ ์ ๊ณตํ๋ .gcno๋ฐ .gcda ์ด ์ต์ ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ํ์ผ์ ๊ฒ์ํฉ๋๋ค. ๋๋ ํ ๋ฆฌ์ธ ๊ฒฝ์ฐ
์ง์ ๋ ๊ฒฝ์ฐ ๋ฐ์ดํฐ ํ์ผ์ ํด๋น ๋๋ ํ ๋ฆฌ์ ์๊ณ ์ ๋ ฅ ํ์ผ ์ด๋ฆ์ ๋ฐ์ ๋ช ๋ช ๋ฉ๋๋ค.
ํ์ฅ ์์ด. ํ์ผ์ด ์ฌ๊ธฐ์ ์ง์ ๋๋ฉด ๋ฐ์ดํฐ ํ์ผ์ ์ด๋ฆ์
ํ์ฅ์๊ฐ ์๋ ํด๋น ํ์ผ.
-s ์๋ฐฐ ๊ท์น์
--์์ค ์ ๋์ฌ ์๋ฐฐ ๊ท์น์
์ถ๋ ฅ ์ปค๋ฒ๋ฆฌ์ง ํ์ผ์ ์์ฑํ ๋ ์ ๊ฑฐํ ์์ค ํ์ผ ์ด๋ฆ์ ์ ๋์ฌ.
์ด ์ต์ ์ ๋ณ๋์ ๋๋ ํ ๋ฆฌ์ ๋น๋ํ ๋ ์ ์ฉํ๋ฉฐ,
์ถ๋ ฅ ํ์ผ ์ด๋ฆ์ ๊ฒฐ์ ํ ๋ ์์ค ๋๋ ํ ๋ฆฌ๋ ํ์ํ์ง ์์ต๋๋ค. ์ด
์์ค ํ์ผ์ด ์ ๋ ํ์ผ์ธ์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๊ธฐ ์ ์ ์ ๋์ฌ ๊ฐ์ง๊ฐ ์ ์ฉ๋ฉ๋๋ค.
-u
--๋ฌด์กฐ๊ฑด ๋ถ๊ธฐ
๋ถ๊ธฐ ํ๋ฅ ์ด ์ฃผ์ด์ง๋ฉด ๋ฌด์กฐ๊ฑด ๋ถ๊ธฐ์ ํ๋ฅ ์ ํฌํจํฉ๋๋ค.
๋ฌด์กฐ๊ฑด ๋ถ๊ธฐ๋ ์ผ๋ฐ์ ์ผ๋ก ํฅ๋ฏธ๋กญ์ง ์์ต๋๋ค.
-d
--๋์คํ๋ ์ด ์งํ
ํ์ค ์ถ๋ ฅ์ ์งํ ์ํฉ์ ํ์ํฉ๋๋ค.
gcov ํธ์ถํ์ ๋์ ๋์ผํ ํ์ฌ ๋๋ ํ ๋ฆฌ๋ก ์คํ๋์ด์ผ ํฉ๋๋ค.
์ปดํ์ผ๋ฌ. ๊ทธ๋ ์ง ์์ผ๋ฉด ์์ค ํ์ผ์ ์ฐพ์ ์ ์์ต๋๋ค. gcov ํ์ผ์ ์์ฑ
๋ผ๋ ๋ง๊ฐ์ง ์ด๋ฆ.gcov ํ์ฌ ๋๋ ํ ๋ฆฌ์์. ์ฌ๊ธฐ์๋ ์ ์ฉ ๋ฒ์ ์ ๋ณด๊ฐ ํฌํจ๋ฉ๋๋ค.
๊ทธ๋ค์ด ๋์ํ๋ ์์ค ํ์ผ์. ํ๋ .gcov ํ์ผ์ ๊ฐ ์์ค์ ๋ํด ์์ฑ๋ฉ๋๋ค(๋๋
ํค๋) ๋ฐ์ดํฐ ํ์ผ์ ์์ฑํ๊ธฐ ์ํด ์ปดํ์ผ๋ ์ฝ๋๊ฐ ํฌํจ๋ ํ์ผ์ ๋๋ค. NS
๋ง๊ฐ์ง ์ด๋ฆ ์ถ๋ ฅ ํ์ผ ์ด๋ฆ์ ์ผ๋ถ๋ ์ผ๋ฐ์ ์ผ๋ก ๋จ์ํ ์์ค ํ์ผ ์ด๋ฆ์ด์ง๋ง
๋ ๋ณต์กํ ๊ฒฝ์ฐ -l or -p ์ต์ ์ด ์ฃผ์ด์ง๋๋ค. ํด๋น ์ต์ ์ ์ฐธ์กฐํ์ญ์์ค
๋ฅผ ์ฐธ์กฐํ์ธ์
ํธ์ถํ๋ฉด gcov ์ฌ๋ฌ ์ ๋ ฅ ํ์ผ์ด ์๋ ๊ฒฝ์ฐ ๊ฐ ์ ๋ ฅ ํ์ผ์ ๊ธฐ์ฌ๋
ํฉ์ฐ. ์ผ๋ฐ์ ์ผ๋ก ์ต์ข ๋งํฌ์ ๋์ผํ ํ์ผ ๋ชฉ๋ก์ ์ฌ์ฉํ์ฌ ํธ์ถํฉ๋๋ค.
๋น์ ์ ์คํ ํ์ผ.
์ด ์ดํ๋ฆฌ์ผ์ด์ ์๋ XNUMXยตm ๋ฐ XNUMXยตm ํ์ฅ์์ ์ต๋ XNUMXW์ ํ๊ท ์ถ๋ ฅ์ ์ ๊ณตํ๋ .gcov ํ์ผ์๋ : ํ๋ก๊ทธ๋จ ์์ค ์ฝ๋์ ํจ๊ป ๋ถ๋ฆฌ๋ ํ๋. ํ์
is
: :
๋ช ๋ น์ค ์ต์ ์์ ์์ฒญํ๋ฉด ์ถ๊ฐ ๋ธ๋ก ์ ๋ณด๊ฐ ๊ฐ ์ค์ ์ฑ๊ณตํ ์ ์์ต๋๋ค.
์ด ์ดํ๋ฆฌ์ผ์ด์ ์๋ XNUMXยตm ๋ฐ XNUMXยตm ํ์ฅ์์ ์ต๋ XNUMXW์ ํ๊ท ์ถ๋ ฅ์ ์ ๊ณตํ๋ ์คํ ํ์ is - ์ฝ๋๊ฐ ํฌํจ๋์ง ์์ ๋ผ์ธ์ ๊ฒฝ์ฐ. ์คํ๋์ง ์์ ํ์ด ํ์๋ฉ๋๋ค. #####
or ====, ์์ธ๊ฐ ์๋ ๊ฒฝ๋ก๋ก ๋๋ฌํ ์ ์๋์ง ์ฌ๋ถ์ ๋ฐ๋ผ
๊ฐ๊ฐ C++ ์์ธ ์ฒ๋ฆฌ๊ธฐ์ ๊ฐ์ ์์ธ ๊ฒฝ๋ก.
์์ ๋ถ๋ถ์ ์๋ ์ ๋ณด์ ์ผ๋ถ ์ค์๋ ๋ผ์ธ_๋ฒํธ ์ ๋ก. ์ด๋ฌํ ์๋ฌธ ๋ผ์ธ์
ํํ์
-:0: :
์ด๋ฌํ ์๋ฌธ ์ค์ ์์์ ์๋ ๋ค์๊ณผ ๊ฐ์ด ์ฆ๊ฐํฉ๋๋ค. gcov ๊ฐ๋ฐ
์งํ --- ๋ณ๊ฒฝ๋์ง ์์ ์ํ๋ก ์ ์ง์ ์์กดํ์ง ๋ง์ญ์์ค. ์ฌ์ฉํ๋ค ํ๊ทธ ํน์ ์์น๋ฅผ ์ฐพ๊ธฐ ์ํด
ํ๋ฆฌ์ฐ๋ธ ๋ผ์ธ.
์ถ๊ฐ ๋ธ๋ก ์ ๋ณด๋ ๋ค์ ํ์์ ๋๋ค.
์ด ์ดํ๋ฆฌ์ผ์ด์ ์๋ XNUMXยตm ๋ฐ XNUMXยตm ํ์ฅ์์ ์ต๋ XNUMXW์ ํ๊ท ์ถ๋ ฅ์ ์ ๊ณตํ๋ ์ ๋ณด ์ฌ๋์ด ์ฝ์ ์ ์์ง๋ง ๊ธฐ๊ณ ๊ตฌ๋ฌธ ๋ถ์์ ์ถฉ๋ถํ ๊ฐ๋จํ๋๋ก ์ค๊ณ๋์์ต๋๋ค.
๋.
๋ฐฑ๋ถ์จ์ ์ธ์ํ ๋ ๊ฐ์ด ๋ค์๊ณผ ๊ฐ์ ๋๋ง 0%์ 100%๊ฐ ์ธ์๋ฉ๋๋ค. ์ ํํ๊ฒ 0 % ๋ฐ
๊ฐ๊ฐ 100%. ์ผ๋ฐ์ ์ผ๋ก 0% ๋๋ 100%๋ก ๋ฐ์ฌ๋ฆผ๋๋ ๋ค๋ฅธ ๊ฐ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋์ ๊ฐ์ฅ ๊ฐ๊น์ด ๋น๊ฒฝ๊ณ ๊ฐ์ผ๋ก ์ธ์๋ฉ๋๋ค.
์ฌ์ฉ์ gcov, ๋จผ์ ๋ ๊ฐ์ง ํน์ GCC ์ต์ ์ ์ฌ์ฉํ์ฌ ํ๋ก๊ทธ๋จ์ ์ปดํ์ผํด์ผ ํฉ๋๋ค.
-fprofile-ํธ -์ตํ ๋ฒ์. ์ด๊ฒ์ ์ปดํ์ผ๋ฌ์๊ฒ ์ถ๊ฐ ์์ฑ์ ์ง์ํฉ๋๋ค.
gcov(๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ก๊ทธ๋จ์ ํ๋ฆ ๊ทธ๋ํ)์ ํ์ํ ์ ๋ณด์ ๋ค์์ ํฌํจํฉ๋๋ค.
ํ์ํ ์ถ๊ฐ ํ๋กํ์ผ๋ง ์ ๋ณด๋ฅผ ์์ฑํ๊ธฐ ์ํ ๊ฐ์ฒด ํ์ผ์ ์ถ๊ฐ ์ฝ๋
gcov์ ์ํด. ์ด๋ฌํ ์ถ๊ฐ ํ์ผ์ ๊ฐ์ฒด ํ์ผ์ด ์๋ ๋๋ ํฐ๋ฆฌ์ ๋ฐฐ์น๋ฉ๋๋ค.
์์นํ๊ณ ์์ต๋๋ค.
ํ๋ก๊ทธ๋จ์ ์คํํ๋ฉด ํ๋กํ ์ถ๋ ฅ์ด ์์ฑ๋ฉ๋๋ค. ๊ฐ ์์ค ํ์ผ์ ๋ํด
๋ก ์ปดํ์ผ -fprofile-ํธ, ๋๋ฐ .gcda ํ์ผ์ ๊ฐ์ฒด ํ์ผ์ ๋ฐฐ์น๋ฉ๋๋ค
๋๋ ํ ๋ฆฌ.
๋ฌ๋ฆฌ๋ gcov ํ๋ก๊ทธ๋จ์ ์์ค ํ์ผ ์ด๋ฆ์ ์ธ์๋ก ์ฌ์ฉํ๋ฉด ์ด์ ๋ชฉ๋ก์ด ์์ฑ๋ฉ๋๋ค.
๊ฐ ๋ผ์ธ์ ๋ํ ์คํ ๋น๋์ ํจ๊ป ์ฝ๋์. ์๋ฅผ ๋ค์ด ํ๋ก๊ทธ๋จ์ด
๋ถ๋ ๋ค. tmp.c, ์ด๊ฒ์ ๊ธฐ๋ณธ์ ์ฌ์ฉํ ๋ ํ์๋๋ gcov ์์ค:
$ gcc -fprofile-arcs -ftest-์ปค๋ฒ๋ฆฌ์ง tmp.c
$์์
$ gcov tmp.c
ํ์ผ tmp.c์์ ์คํ๋ 90.00๊ฐ์ ์์ค ๋ผ์ธ ์ค 10%
tmp.c.gcov ์์ฑ
ํ์ผ tmp.c.gcov ์ ์ถ๋ ฅ์ ํฌํจํฉ๋๋ค. gcov. ๋ค์์ ์ํ์ ๋๋ค.
--: 0:์ถ์ฒ:tmp.c
-: 0:๊ทธ๋ํ:tmp.gcno
--: 0:๋ฐ์ดํฐ:tmp.gcda
-: 0:๋ฐ:1
-: 0:ํ๋ก๊ทธ๋จ:1
-: 1:#ํฌํจ
-: 2:
-: 3:int ๋ฉ์ธ(๋ฌดํจ)
1:4:{
1:5: int i, ์ด๊ณ;
-: 6:
1: 7: ์ด๊ณ = 0;
-: 8:
11:9: (i = 0, i < 10, i++)
10: 10: ์ด += i;
-: 11:
1:12: if (์ด != 45)
#####: 13: printf("์คํจ\n");
-: 14: ๊ทธ ์ธ
1: 15: printf("์ฑ๊ณต\n");
1: 16: 0์ ๋ฐํํฉ๋๋ค.
--: 17:}
๊ทํ๊ฐ -a ์ต์ ์ ์ ํํ๋ฉด ๊ฐ๋ณ ๋ธ๋ก ์๋ฅผ ์ป์ ์ ์์ผ๋ฉฐ ์ถ๋ ฅ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ด๋ ๊ฒ :
--: 0:์ถ์ฒ:tmp.c
-: 0:๊ทธ๋ํ:tmp.gcno
--: 0:๋ฐ์ดํฐ:tmp.gcda
-: 0:๋ฐ:1
-: 0:ํ๋ก๊ทธ๋จ:1
-: 1:#ํฌํจ
-: 2:
-: 3:int ๋ฉ์ธ(๋ฌดํจ)
1:4:{
1: 4๋ธ๋ก 0
1:5: int i, ์ด๊ณ;
-: 6:
1: 7: ์ด๊ณ = 0;
-: 8:
11:9: (i = 0, i < 10, i++)
11: 9๋ธ๋ก 0
10: 10: ์ด += i;
10: 10๋ธ๋ก 0
-: 11:
1:12: if (์ด != 45)
1: 12๋ธ๋ก 0
#####: 13: printf("์คํจ\n");
$$$$$: 13๋ธ๋ก 0
-: 14: ๊ทธ ์ธ
1: 15: printf("์ฑ๊ณต\n");
1: 15๋ธ๋ก 0
1: 16: 0์ ๋ฐํํฉ๋๋ค.
1: 16๋ธ๋ก 0
--: 17:}
์ด ๋ชจ๋์์ ๊ฐ ๊ธฐ๋ณธ ๋ธ๋ก์ ๋ธ๋ก์ ๋ง์ง๋ง ์ค์ธ ํ ์ค์๋ง ํ์๋ฉ๋๋ค. NS
์ฌ๋ฌ ์ค ๋ธ๋ก์ ๋ง์ง๋ง ์ค์ ์คํ ํ์์๋ง ๊ธฐ์ฌํ๊ณ ๋ค๋ฅธ
์ด์ ๋ธ๋ก์ด ํด๋น ๋ผ์ธ์์ ๋๋์ง ์๋ ํ ๋ผ์ธ์ ์ฝ๋๋ฅผ ํฌํจํ๋ ๊ฒ์ผ๋ก ํ์๋์ง ์์ต๋๋ค. NS
ํ ์ค์ ์ด ์คํ ํ์๊ฐ ํ์๋๊ณ ๋ค์ ์ค์๋ ์คํ ํ์๊ฐ ํ์๋ฉ๋๋ค.
ํด๋น ๋ผ์ธ์์ ๋๋๋ ๊ฐ๋ณ ๋ธ๋ก์ ๊ฒฝ์ฐ. ๊ฐ ๋ธ๋ก ํ ๋ถ๊ธฐ ๋ฐ ํธ์ถ ํ์
๋ธ๋ก์ ๊ฐ ํ์๋ฉ๋๋ค. -b ์ต์ ์ด ์ฃผ์ด์ง๋๋ค.
GCC ๊ณ์ธก๊ธฐ๊ฐ ํธ์ถํ๋ ๋ฐฉ์ ๋๋ฌธ์ ํธ์ถ ์๊ฐ ์๋ ๋ผ์ธ ๋ค์ ํ์๋ ์ ์์ต๋๋ค.
๊ฐ๋ณ ๋ธ๋ก. ๋ณด์๋ค์ํผ 13ํ์๋ ์คํ๋์ง ์์ ๊ธฐ๋ณธ ๋ธ๋ก์ด ํฌํจ๋์ด ์์ต๋๋ค.
๊ทํ๊ฐ -b ์ต์ ์ ์ ํํ๋ฉด ์ถ๋ ฅ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
$ gcov -b tmp.c
ํ์ผ tmp.c์์ ์คํ๋ 90.00๊ฐ์ ์์ค ๋ผ์ธ ์ค 10%
tmp.c ํ์ผ์์ ์คํ๋ 80.00๊ฐ ๋ถ๊ธฐ ์ค 5%
tmp.c ํ์ผ์์ 80.00๊ฐ ๋ถ๊ธฐ ์ค 5%๊ฐ ํ ๋ฒ ์ด์ ๊ฐ์ ธ์ด
tmp.c ํ์ผ์์ ์คํ๋ 50.00๊ฐ์ ํธ์ถ ์ค 2%
tmp.c.gcov ์์ฑ
๋ค์์ ๊ฒฐ๊ณผ ์ํ์ ๋๋ค. tmp.c.gcov ํ์ผ :
--: 0:์ถ์ฒ:tmp.c
-: 0:๊ทธ๋ํ:tmp.gcno
--: 0:๋ฐ์ดํฐ:tmp.gcda
-: 0:๋ฐ:1
-: 0:ํ๋ก๊ทธ๋จ:1
-: 1:#ํฌํจ
-: 2:
-: 3:int ๋ฉ์ธ(๋ฌดํจ)
ํจ์ main์ด 1๋ก ํธ์ถ๋จ 1๊ฐ ๋ธ๋ก์ด ์คํ๋จ 75%
1:4:{
1:5: int i, ์ด๊ณ;
-: 6:
1: 7: ์ด๊ณ = 0;
-: 8:
11:9: (i = 0, i < 10, i++)
๋ถ๊ธฐ 0์ด 91% ์ฌ์ฉ๋จ(ํด์ค๋ฃจ)
๋ถ๊ธฐ 1์ 9%๋ฅผ ์ฐจ์งํ์ต๋๋ค.
10: 10: ์ด += i;
-: 11:
1:12: if (์ด != 45)
๋ถ๊ธฐ 0์ด 0% ์ฌ์ฉ๋จ(ํด์ค๋ฃจ)
๋ถ๊ธฐ 1์ 100%๋ฅผ ์ฐจ์งํ์ต๋๋ค.
#####: 13: printf("์คํจ\n");
ํธ์ถ 0์ ์คํ๋์ง ์์
-: 14: ๊ทธ ์ธ
1: 15: printf("์ฑ๊ณต\n");
0 ํธ์ถ 1 ํธ์ถ 100% ๋ฐํ
1: 16: 0์ ๋ฐํํฉ๋๋ค.
--: 17:}
๊ฐ ํจ์์ ๋ํด ํจ์๊ฐ ํธ์ถ๋ ํ์์ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ฃผ๋ ์ค์ด ์ธ์๋ฉ๋๋ค.
์ฌ๋ฌ ๋ฒ ๋ฐํํ๊ณ ํจ์ ๋ธ๋ก์ ๋ช ํผ์ผํธ๊ฐ ์คํ๋์๋์ง.
๊ฐ ๊ธฐ๋ณธ ๋ธ๋ก์ ๋ํด ๋ค์์ ์ค๋ช ํ๋ ๊ธฐ๋ณธ ๋ธ๋ก์ ๋ง์ง๋ง ์ค ๋ค์์ ํ ์ค์ด ์ธ์๋ฉ๋๋ค.
๊ธฐ๋ณธ ๋ธ๋ก์ ์ข ๋ฃํ๋ ๋ถ๊ธฐ ๋๋ ํธ์ถ. ์ฌ๋ฌ ๋ถ๊ธฐ ๋ฐ ํธ์ถ์ด ์์ ์ ์์ต๋๋ค.
ํด๋น ๋ผ์ธ์์ ๋๋๋ ์ฌ๋ฌ ๊ธฐ๋ณธ ๋ธ๋ก์ด ์๋ ๊ฒฝ์ฐ ๋จ์ผ ์์ค ๋ผ์ธ์ ๋ํด ๋์ด๋ฉ๋๋ค.
์ด ๊ฒฝ์ฐ ์ง์ ๊ณผ ํตํ์๋ ๊ฐ๊ฐ ๋ฒํธ๊ฐ ๋ถ์ฌ๋ฉ๋๋ค. ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ์์ต๋๋ค
์ด๋ฌํ ๋ถ๊ธฐ๋ฅผ ๋งคํํ๊ณ ์์ค ๊ตฌ์ฑ์ผ๋ก ๋ค์ ํธ์ถํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ผ๋ฐ์ ์ผ๋ก ๊ฐ์ฅ ๋ฎ์
๋ฒํธ๊ฐ ๋งค๊ฒจ์ง ๋ถ๊ธฐ ๋๋ ํธ์ถ์ ์์ค ํ์ ๊ฐ์ฅ ์ผ์ชฝ ๊ตฌ์ฑ์ ํด๋นํฉ๋๋ค.
๋ถ๊ธฐ์ ๊ฒฝ์ฐ ํ ๋ฒ ์ด์ ์คํ๋ ๊ฒฝ์ฐ ํ์๋ฅผ ๋ํ๋ด๋ ๋ฐฑ๋ถ์จ
๋ถ๊ธฐ๋ฅผ ๊ฐ์ ธ์จ ํ์๋ฅผ ๋ถ๊ธฐ๊ฐ ์คํ๋ ํ์๋ก ๋๋ ๊ฐ์
์ธ์. ๊ทธ๋ ์ง ์์ผ๋ฉด "์คํ๋์ง ์์"์ด๋ผ๋ ๋ฉ์์ง๊ฐ ์ธ์๋ฉ๋๋ค.
ํธ์ถ์ ๊ฒฝ์ฐ ํ ๋ฒ ์ด์ ์คํ๋ ๊ฒฝ์ฐ ํธ์ถ ํ์๋ฅผ ๋ํ๋ด๋ ๋ฐฑ๋ถ์จ
๋ฐํ๋ ํธ์ถ ํ์๋ฅผ ํธ์ถ์ด ์คํ๋ ํ์๋ก ๋๋ ๊ฐ์
์ธ์. ์ด๊ฒ์ ์ผ๋ฐ์ ์ผ๋ก 100%์ด์ง๋ง "exit" ๋๋
"longjmp"์ด๋ฏ๋ก ํธ์ถ๋ ๋๋ง๋ค ๋ฐํ๋์ง ์์ ์ ์์ต๋๋ค.
์คํ ํ์๋ ๋์ ๋ฉ๋๋ค. ํ์ง ์๊ณ ์์ ํ๋ก๊ทธ๋จ์ ๋ค์ ์คํํ๋ฉด
์ ๊ฑฐ .gcda ํ์ผ์์ ์์ค์ ๊ฐ ํ์ด ๋ช ๋ฒ์ธ์ง ์นด์ดํธ
์คํ์ ์ด์ ์คํ์ ๊ฒฐ๊ณผ์ ์ถ๊ฐ๋ฉ๋๋ค. ์ด๊ฒ์ ์ ์ฌ์ ์ผ๋ก ์ ์ฉํฉ๋๋ค
์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก. ์๋ฅผ ๋ค์ด, ์ฌ๋ฌ ๋ฐ์ดํฐ๋ฅผ ๋์ ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํ๋ก๊ทธ๋จ์ ํ ์คํธ ๊ฒ์ฆ ์ ํ๊ตฐ์ ์ผ๋ถ๋ก ์คํ๋๊ฑฐ๋ ๋ณด๋ค ์ ํํ ์ฅ๊ธฐ
๋ง์ ์์ ํ๋ก๊ทธ๋จ ์คํ์ ๋ํ ์ ๋ณด.
์ ๋ฐ์ดํฐ๋ .gcda ํ์ผ์ ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ๋๊ธฐ ์ง์ ์ ์ ์ฅ๋ฉ๋๋ค. ๊ฐ๊ฐ
์ปดํ์ผ๋ ์์ค ํ์ผ -fprofile-ํธ, ํ๋กํ์ผ๋ง ์ฝ๋๋ ๋จผ์ ์ฝ๊ธฐ๋ฅผ ์๋ํฉ๋๋ค.
ํ์กดํ๋ .gcda ํ์ผ; ํ์ผ์ด ์คํ ํ์ผ๊ณผ ์ผ์นํ์ง ์๋ ๊ฒฝ์ฐ(๊ธฐ๋ณธ
๋ธ๋ก ์) ํ์ผ์ ๋ด์ฉ์ ๋ฌด์ํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ ์คํ์ ์ถ๊ฐํฉ๋๋ค.
๊ณ์ฐํ๊ณ ๋ง์ง๋ง์ผ๋ก ํ์ผ์ ๋ฐ์ดํฐ๋ฅผ ์๋๋ค.
์ฌ์ฉ gcov ๊ณผ GCC ์ต์ ํ
์ฌ์ฉํ๋ ค๋ ๊ฒฝ์ฐ gcov ์ฝ๋๋ฅผ ์ต์ ํํ๋ ค๋ฉด ๋จผ์ ํ๋ก๊ทธ๋จ์ ์ปดํ์ผํด์ผ ํฉ๋๋ค.
๋ ๊ฐ์ง ํน๋ณํ GCC ์ต์ : -fprofile-ํธ -์ตํ ๋ฒ์. ๊ทธ ์ธ์๋ ํ ์ ์์ต๋๋ค
๋ค๋ฅธ GCC ์ต์ ์ ์ฌ์ฉํฉ๋๋ค. ํ์ง๋ง ํ๋ก๊ทธ๋จ์ ๋ชจ๋ ๋ผ์ธ์ด
์ต์ ํ์ ๋์์ ์ปดํ์ผํ๋ฉด ์ ๋ฉ๋๋ค. ์ผ๋ถ ๊ธฐ๊ณ์์
์ตํฐ๋ง์ด์ ๋ ์ผ๋ถ ๊ฐ๋จํ ์ฝ๋ ๋ผ์ธ์ ๋ค๋ฅธ ๋ผ์ธ๊ณผ ๊ฒฐํฉํ์ฌ ์ ๊ฑฐํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ๋ค์๊ณผ ๊ฐ์ ์ฝ๋:
๋ง์ฝ (a != b)
c = 1;
๊ทธ๋ ์ง ์์ผ๋ฉด
c = 0;
์ผ๋ถ ๊ธฐ๊ณ์์๋ ํ๋์ ๋ช ๋ น์ด๋ก ์ปดํ์ผ๋ ์ ์์ต๋๋ค. ์ด๋ฐ ๊ฒฝ์ฐ์๋ ๋ฐฉ๋ฒ์ด ์๋ค.
gcov ๋ณ๋์ ์คํ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ๊ฐ ์ค์ ๋ํด ๋ณ๋์ ์คํ ํ์๋ฅผ ๊ณ์ฐํฉ๋๋ค.
๊ฐ ๋ผ์ธ์ ๋ํ ์ฝ๋. ๋ฐ๋ผ์ gcov ํ๋ก๊ทธ๋จ์ ์ปดํ์ผํ๋ฉด ์ถ๋ ฅ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ต์ ํ:
100: 12:๋ง์ฝ (a != b)
100:13:c=1;
100: 14:๊ธฐํ
100:15:c=0;
์ถ๋ ฅ์ ์ต์ ํ๋ก ๊ฒฐํฉ๋ ์ด ์ฝ๋ ๋ธ๋ก์ด 100๋ฒ ์คํ๋์์์ ๋ณด์ฌ์ค๋๋ค.
์ด๋ค ์๋ฏธ์์ ์ด ๊ฒฐ๊ณผ๋ ์ ํํฉ๋๋ค.
์ด ๋ค ์ค ๋ชจ๋. ๊ทธ๋ฌ๋ ์ถ๋ ฅ์ ๊ฒฐ๊ณผ๊ฐ ๋ช ๋ฒ์ธ์ง ๋ํ๋ด์ง ์์ต๋๋ค.
0์ด๊ณ ๊ฒฐ๊ณผ๊ฐ 1์ธ ํ์์ ๋๋ค.
์ธ๋ผ์ธ ๊ฐ๋ฅ ํจ์๋ ์๊ธฐ์น ์์ ์ค ์๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ํ ์๊ฐ ํ์๋ฉ๋๋ค.
์ธ๋ผ์ธ ๊ฐ๋ฅ ํจ์์ ์์ค ์ฝ๋์ด์ง๋ง ํ์๋๋ ๋ด์ฉ์ ํจ์๊ฐ ์๋ ์์น์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค.
์ธ๋ผ์ธ๋๊ฑฐ๋ ์ ํ ์ธ๋ผ์ธ๋์ง ์์ ๊ฒฝ์ฐ.
ํจ์๊ฐ ์ธ๋ผ์ธ๋์ง ์์ ๊ฒฝ์ฐ ์ปดํ์ผ๋ฌ๋
๊ธฐ๋ฅ์ ํ์๋ก ํ๋ ๋ชจ๋ ๊ฐ์ฒด ํ์ผ์์. ๋ง์ฝ์ ํ์ผA.o and ํ์ผ๋น์ค ๋ ๋ค
ํน์ ์ธ๋ผ์ธ ๊ฐ๋ฅ ํจ์์ ๋ผ์ธ ๋ณธ๋ฌธ์๋ ๋ ๋ค ์ ์ฉ ๋ฒ์๋ ํฌํจ๋ฉ๋๋ค.
ํด๋น ๊ธฐ๋ฅ์ ๊ณ์ฐํฉ๋๋ค. ์ธ์ ํ์ผA.o and ํ์ผ๋น์ค ์๋ก ์ฐ๊ฒฐ๋์ด ์์ผ๋ฉด ๋ง์ปค๋
๋ง์ ์์คํ ์์ ํด๋น ํจ์์ ๋ํ ๋ชจ๋ ํธ์ถ์ ๋ํด ํ์ ๋ณธ๋ฌธ ์ค ํ๋๋ฅผ ์ ํํฉ๋๋ค.
๋ค๋ฅธ ํ๋๋ฅผ ์ ๊ฑฐํ๊ฑฐ๋ ๋ฌด์ํฉ๋๋ค. ๋ถํํ๋ ์ปค๋ฒ๋ฆฌ์ง ์นด์ดํฐ๋ ์ ๊ฑฐ๋์ง ์์ต๋๋ค.
์ฌ์ฉํ์ง ์๋ ํจ์ ๋ณธ์ฒด์ ๋ํด. ๋ฐ๋ผ์ ๊ณ์ธกํ ๋ ํด๋น ๊ธฐ๋ฅ์ ํ ๋ฒ๋ง ์ ์ธํ๊ณ ๋ ๋ชจ๋ ์ฌ์ฉํฉ๋๋ค.
XNUMX ์นด์ดํธ๋ฅผ ํ์ํฉ๋๋ค.
ํจ์๊ฐ ์ฌ๋ฌ ์์น์ ์ธ๋ผ์ธ๋ ๊ฒฝ์ฐ ๊ฐ ์์น์ ๋ธ๋ก ๊ตฌ์กฐ๋
๋์ผํ์ง ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์กฐ๊ฑด์ ์ด์ ์ปดํ์ผ ํ์์ ๊ณ์ฐํ ์ ์์ต๋๋ค.
์ผ๋ถ ์ฌ๋ก. ์ธ๋ผ์ธ ํจ์์ ๋ชจ๋ ์ฌ์ฉ ๋ฒ์๊ฐ ํ์๋๊ธฐ ๋๋ฌธ์
๋์ผํ ์์ค ๋ผ์ธ์ ๊ฒฝ์ฐ ๋ผ์ธ ์นด์ดํธ ์์ฒด๊ฐ ์ผ๊ด์ฑ์ด ์์ด ๋ณด์ผ ์ ์์ต๋๋ค.
์ฅ๊ธฐ ์คํ ์ ํ๋ฆฌ์ผ์ด์ ์ "_gcov_reset" ๋ฐ "_gcov_dump" ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ
๊ด์ฌ ํ๋ก๊ทธ๋จ ์์ญ์ผ๋ก ํ๋กํ ์์ง์ ์ ํํฉ๋๋ค. "_gcov_reset(void)" ํธ์ถ
๋ชจ๋ ํ๋กํ ์นด์ดํฐ๋ฅผ XNUMX์ผ๋ก ์ง์ฐ๊ณ "_gcov_dump(void)"๋ฅผ ํธ์ถํ๋ฉด
ํด๋น ์์ ์ ์์ง๋ ํ๋กํ ์ ๋ณด๊ฐ ๋คํ๋ฉ๋๋ค. .gcda ์ถ๋ ฅ ํ์ผ.
onworks.net ์๋น์ค๋ฅผ ์ฌ์ฉํ์ฌ ์จ๋ผ์ธ์์ aarch64-linux-gnu-gcov-4.8 ์ฌ์ฉ