[Go] debug: dlv
๊ธฐ๋ณธ ๋๋ฒ๊น ๋๊ตฌ์ธ dlv๋ฅผ ์ด์ฉํด์ ์ค๋จ์ ์ ์ฐ๊ณ ๋๋ฒ๊น ์ ํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณด๊ฒ ๋ค.
๋ณดํต์ ๊ธฐ๋ณธ์ผ๋ก ์ค์น๋์ด์์ ๊ฒ์ด๋ค.

์์ผ๋ฉด ์ง์ ์ค์นํ๋ค.
go get github.com/go-delve/delve/cmd/dlv๋๋ฒ๊น ๋ชจ๋ ์ง์
debug ๋ช ๋ น๊ณผ ํจ๊ป ์ง์ ์ ์์คํ์ผ์ ์ ๋ฌํ๋ฉด ๋๋ฒ๊น ๋ชจ๋์ ๋ค์ด๊ฐ๋ค.

๋๋ฒ๊น
์ฉ ํ์ผ๋ ํ๋ ์๊ธด๋ค. ์ด๊ฑด ๋ฌด์ํด๋ ๋๋ค.
๊ทธ๋ฌ๋ฉด ์ด์ ๋ถํฐ gdb๋ฅผ ์ฐ๋ฏ์ด ๋ช ๋ น์ด๋ฅผ ๋ ๋ฆฌ๋ฉด์ ๋๋ฒ๊น ์ ํด๋ณผ ์ ์๋ค.
help๋ฅผ ๋ ๋ฆฌ๋ฉด ๋ช ๋ น์ด ๋ชฉ๋ก์ ์กฐํํ ์ ์๊ณ

exit๋ฅผ ์น๋ฉด ๋๊ฐ ์ ์๋ค.

list ๋ช ๋ น์ ํจํค์ง๋ช .ํจ์๋ช ์ ์ ๋ฌํ๋ฉด, ๊ทธ ํจ์์ ์์ค์ฝ๋๋ฅผ ์กฐํํ ์ ์๋ค.
๋ ์ ๊ธฐ์ 8๋ฒ์งธ ์ค ์ฆ์์ ์ค๋จ์ ์ ๊ฑธ์ด๋ณด๋ ค ํ๋ค.
์ค๋จ์ (breakpoint) ๊ฑธ๊ธฐ
๋จผ์ ๋ค์๊ณผ ๊ฐ์ด ์์คํ์ผ๊ณผ, ์ค๋จ์ ์ ๊ฑธ ํ์ ์ ๋ฌํด์ break ๋ช ๋ น์ ๋ ๋ฆฌ๋ฉด ์ค๋จ์ ์ด ์์ฑ์ด ๋๋ค.

๊ทธ๋ฌ๋ฉด ์ด๋ ๊ฒ ์์ฑ์ด ๋ ๊ฒ์ ํ์ธํ ์ ์์ ๊ฒ์ด๋ค.

์ค๋จ์ ์ด ๊ฑธ๋ฆฐ ์ํ๋ก ์คํ์ ์ํค๋ ค๋ฉด, continue ๋ช ๋ น์ ์ฌ์ฉํ๋ฉด ๋๋ค.
๊ทธ๋ฌ๋ฉด ๋ค์ ์ค๋จ์ ์ ๋ง๋ ๋๊น์ง ๊ณ์ํด์ ์คํ์ ํ๋ค.
locals๋ฅผ ์ฌ์ฉํ๋ฉด ํ์ฌ ์ํ์ ์ง์ญ๋ณ์ ๋ชฉ๋ก์ ๋ฝ์๋ณผ ์ ์๊ณ

๊ณ์ํด์ continue๋ฅผ ๋ฐ๋ณตํ๋ฉด์ ์ํ๋ฅผ ํ์ธํ๊ณ ๋ถ์ํ๋ฉด ๋๋ ๊ฒ์ด๋ค
๊ธฐ๋ณธ์ ์ธ ์ฌ์ฉ ํํ๋ ์ด๋ ๋ค.
Visual Studio Code์์ ์ฌ์ฉํ๊ธฐ
VScode์์ dlv๋ฅผ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ๊ฐ๋ตํ ์ ๋ฆฌํด๋ณธ๋ค.
๋ฐฉ๋ฒ์ ๋ค๋ฅผ๊ฒ ๋ฑํ ์๋ค.
์ค๋จ์ ์ ๊ฑธ๊ณ ์ถ์ ํ์ ํด๋ฆญํด์ ์๋ป๊ฒ๊ฒ ์น ํ๊ณ

๋๋ฒ๊ทธ๋ฅผ ๋๋ฆฌ๋ฉด

๋๋ฒ๊ทธ ๋ชจ๋์ ์ง์ ํ๋ค.
continue ๋ฒํผ ๋๋ฅผ๋๋ง๋ค ์ค๋จ์ ์ ๋๋ฉด์ ๊ฐ์ด๋ ์ํ๋ค์ ๋ค ์ฐ์ด์ค ๊ฒ์ด๋ค.
Goland์์ ์ฌ์ฉํ๊ธฐ
์ด๊ฒ๋ VSCode์ ๋ณ๋ก ๋ค๋ฅผ๊ฑด ์๋ค.
ํ ํด๋ฆญํด์ ์ค๋จ์ ์ฐ๊ณ
๋๋ฒ๊ทธ ๋ชจ๋๋ก ์คํํ๋ฉด ๋๋ค.

๊ทธ๋ฌ๋ฉด ๋น์ทํ ํํ๋ก ๋๋ ค๋ณผ ์ ์๋ค.
์ฐธ์กฐ
https://github.com/go-delve/delve
https://golang.cafe/blog/golang-debugging-with-delve.html