๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ˜‰ ETC

[Intellij Debugger] ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ์–ธ์ œ ํ˜ธ์ถœ๋˜๋Š”์ง€ ์ฐพ์•„๋ณด์ž

์ธํ…”๋ฆฌ์ œ์ด์—์„œ breakpoint๋ฅผ ์ฐ๊ณ  ์—ฌ๊ธฐ์ €๊ธฐ ์™”๋‹ค๊ฐ”๋‹ค ํ•˜๋ฉด์„œ ๋‚˜๋ฆ„ ๋””๋ฒ„๊น…์— ์ต์ˆ™ํ•ด์กŒ๋‹ค.

๊ทธ๋Ÿฌ๋‹ค๊ฐ€ ํ•œ๋ฒˆ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ์ •ํ™•ํžˆ ์–ด๋””์—์„œ ์–ด๋–ค ๊ณผ์ •์œผ๋กœ ํ˜ธ์ถœ๋˜๋Š”์ง€๋ฅผ ์ฐพ๊ณ  ์‹ถ์—ˆ๋‹ค.

ํ…Œ์ŠคํŠธ์ค‘์ด๋˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์•„๋ฌด๋ž˜๋„ ์ž๋ฐ”๋‹ค ๋ณด๋‹ˆ... ์ถ”์ƒํ™”์˜์ถ”์ƒํ™”์˜์ถ”์ƒํ™”๋œ ๊ฒฐ๊ณผ๋ฌผ์ด๋ผ์„œ ํƒ€๊ณ ํƒ€๊ณ  ๋“ค์–ด๊ฐ€๋ฉด ์ •๋ง ๊นŠ์ˆ™ํ•˜๊ฒŒ ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค.

 

์•„๋งˆ ๋””๋ฒ„๊น… ํˆด ์ž์ฒด์ ์œผ๋กœ ์–ด๋А ๊นŠ์ด ์ด์ƒ์€ ๋“ค์–ด๊ฐ€์ง€ ์•Š๊ฒŒ ์„ค์ •ํ•˜๋Š”๊ฒŒ ์žˆ๋Š”๊ฑธ๋กœ๋Š” ์•Œ๊ณ  ์žˆ๋Š”๋ฐ, ๊ทธ ์ด์•ผ๊ธฐ๋Š” ์—ฌ๊ธฐ์„œ ํ•˜์ง„ ์•Š์„ ๊ฒƒ์ด๋‹ค.

 

๋‚˜์˜ ํ…Œ์ŠคํŠธ ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹จ๊ณ„๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค.

 

  1. ๊ฐ€์žฅ ๋จผ์ €, ๋ชฉํ‘œํ•˜๋Š” ๋ฉ”์„œ๋“œ ๋ฐ”๋””์— breakpoint๋ฅผ ์ฐ๋Š”๋‹ค.
  2. ๋‹ค์Œ์œผ๋กœ, ๋ชฉํ‘œํ•˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฐ€์žฅ ๋ฐ”๊นฅ ์ชฝ์˜ ์ฝ”๋“œ ๋ผ์ธ์— breakpoint๋ฅผ ์ฐ๋Š”๋‹ค.
  3. ํ•ด๋‹น ์ฝ”๋“œ์—์„œ๋ถ€ํ„ฐ ํ•œ์ค„์”ฉ ์‹คํ–‰ํ•ด๋ณด๊ธฐ ์œ„ํ•ด Step Over๋ฅผ ๋ˆ„๋ฅด๋‹ค๊ฐ€ ๋ชฉํ‘œ ๋ฉ”์„œ๋“œ breakpoint๋กœ ํ•œ๋ฒˆ์— ๋„์ฐฉํ•ด๋ฒ„๋ฆฌ๋Š” ์œ„์น˜๋ฅผ ์ฐพ๋Š”๋‹ค.
  4. ๊ทธ ์œ„์น˜์— breakpoint๋ฅผ ์ฐ๊ณ  ๋””๋ฒ„๊ฑฐ๋ฅผ ์žฌ์‹คํ–‰ํ•œ๋‹ค.
  5. ๋ฉˆ์ถ˜ ์ € ์œ„์น˜์—์„œ๋Š” Step Over๊ฐ€ ์•„๋‹Œ, Step Into๋ฅผ ํ•œ๋‹ค. ๋‚ด๋ถ€ ๋กœ์ง์„ ์ ๊ฒ€ํ•ด๋ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
  6. ๋“ค์–ด์˜จ ๋‹ค์Œ์—๋Š” 3. ~ 4. ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค.
  7. ์ด๋ ‡๊ฒŒ ๋ฐ˜๋ณตํ•˜๋‹ค๋ณด๋ฉด ๋ชฉํ‘œํ•จ์ˆ˜ ์‹คํ–‰ ์ง€์ ์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

์—ฌ๊ธฐ์„œ ๋งค์šฐ ์ค‘์š”ํ•œ ์ฃผ์˜์‚ฌํ•ญ

  • 4๋ฒˆ ๋‹จ๊ณ„์—์„œ ์ฐ๋Š” breakpoint์—์„œ ํ™•์ธํ•ด์•ผ ํ•  ์‚ฌํ•ญ์ด ์žˆ๋‹ค.
  • ๊ทธ ์ฝ”๋“œ ๋ผ์ธ์ด, ์ง€๊ธˆ ๋‚ด๊ฐ€ ๋ณด๊ณ ์‹ถ์€ ์‹คํ–‰ํ๋ฆ„์—์„œ๋งŒ ์‹คํ–‰๋˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ, ๋‹ค๋ฅธ ์‹คํ–‰ํ๋ฆ„(์ด๋ฅผํ…Œ๋ฉด 1,2๋ฒˆ ๋‹จ๊ณ„์—์„œ ์ฐ์€ breakpoint ์ง€์ ์˜ ์ด์ „ ์ฝ”๋“œ ๋ผ์ธ์ด ์‹คํ–‰๋  ๋•Œ ์ €๋ถ€๋ถ„์ด ์‹คํ–‰๋˜๋Š” ๊ฒฝ์šฐ)์—์„œ ์‹คํ–‰๋  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค.
  • ๋”ฐ๋ผ์„œ, ๋งŒ์•ฝ breakpoint์— ์ถ”๊ฐ€์ ์ธ ์„ค์ •์„ ํ•ด์ฃผ์ง€ ์•Š๋Š”๋‹ค๋ฉด, ์ฒ˜์Œ ๋””๋ฒ„๊ฑฐ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ 1,2๋ฒˆ ๋‹จ๊ณ„์—์„œ ์ฐ์€ breakpoint๊ฐ€ ์•„๋‹ˆ๋ผ 4.์—์„œ ์ฐ์€ breakpoint์—์„œ ํ”„๋กœ๊ทธ๋žจ์ด ๋ฉˆ์ถœ์ˆ˜๋„ ์žˆ๋‹ค.
  • ์ด๋•Œ ํ•ด์ค˜์•ผํ•˜๋Š” ์ถ”๊ฐ€์ ์ธ ์„ค์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
    • ์•„๋ž˜ ์˜ˆ์‹œ ํ™”๋ฉด๊ณผ ๊ฐ™์ด, Disable until hitting the following breakpoint: ๋ฅผ ํ™œ์šฉํ•ด์ค€๋‹ค.
    • ์ด ๋“œ๋กญ๋‹ค์šด์—์„œ ์„ ํƒํ•ด์ค˜์•ผ ํ•˜๋Š” breakpoint๋Š” ๋‹จ๊ณ„ 1.์—์„œ ์ฐ์€ ๊ฒƒ์ด๋‹ค.

 

์œ„ ๊ณผ์ •์„ ๊ฑฐ์น˜๋ฉด ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๋ฉ”์„œ๋“œ์˜ ํ˜ธ์ถœ ์ง€์ ์„ ์ถ”์ ํ•ด ๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.

๊ทผ๋ฐ ์‚ฌ์‹ค ์ด๊ฑด ์ข€ ๋ณต์žกํ•˜๊ฒŒ ํ•œ๊ฑฐ๊ณ  .. ๋ชฉํ‘œ ๋ฉ”์„œ๋“œ์— breakpoint ์ฐ๊ณ  ๋””๋ฒ„๊ฑฐ ์‹คํ–‰ํ•œ ๋‹ค์Œ์— ์ธํ…”๋ฆฌ์ œ์ด ์™ผ์ชฝ ํ•˜๋‹จ ๋ณด๋ฉด ์–ด๋–ค ๋‹จ๊ณ„๋กœ ๊ฑฐ๊ธฐ๊นŒ์ง€ ์™”๋Š”์ง€ ์Šคํƒ์ฒ˜๋Ÿผ ์Œ“์—ฌ์žˆ๋Š”๋ฐ, ๊ทธ๊ฑธ๋กœ๋„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋ญ”๊ฐ€ ์ด๋ฏธ์ง€ ์บก์ณ๋ฅผ ๋งˆ์ง€๋ง‰์—๋งŒ ๋„ฃ์œผ๋‹ˆ๊นŒ ๊ธ€์ด ์ž˜ ์ดํ•ด๊ฐ€ ์•ˆ๋  ์ˆ˜๋„ ์žˆ๊ฒ ๋‹ค.

๋‚˜๋Š” ์ดํ•ด๊ฐ€ ๋˜์ง€๋งŒ, ๊ฐ€๋…์„ฑ์„ ์œ„ํ•ด ๋‹ค์Œ์—๋Š” ์‹œ๊ฐ์ž๋ฃŒ๋ฅผ ์ข€๋” ์ถ”๊ฐ€ํ•ด๋ด์•ผ๊ฒ ๋‹น