๋ฐ˜์‘ํ˜•

์›๊ฒฉ ๋””๋ฒ„๊น…(Remote Debugging)?

์ผ๋ฐ˜์ ์œผ๋กœ ๋””๋ฒ„๊น…์ด๋ผ ํ•จ์€ ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ๋””๋ฒ„๊ทธ ๋ชจ๋“œ๋กœ ๋™์ž‘ํ•˜๊ณ , ์ฝ”๋“œ๋ฅผ ํ•œ ์ค„ ํ•œ ์ค„ ์‹คํ–‰ํ•˜๋ฉฐ ๋ฌธ์ œ๋ฅผ ์ฐพ์•„๊ฐ€๋Š” ๊ณผ์ •์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์›๊ฒฉ ๋””๋ฒ„๊น…์ด๋ž€ ๋ฌด์—‡์ผ๊นŒ์š”? ์˜๋ฏธ ๊ทธ๋Œ€๋กœ ์›๊ฒฉ์œผ๋กœ ๋””๋ฒ„๊น…์„ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ˜ธ์ŠคํŠธ PC์—์„œ ์›๊ฒฉ PC์˜ ํ”„๋กœ๊ทธ๋žจ์„ ๋””๋ฒ„๊น…ํ•œ๋‹ค๋Š” ๊ฒƒ์ด์ฃ .

๊ฑฐ์˜ ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ๋กœ์ปฌ PC์—์„œ๋งŒ ๋””๋ฒ„๊น…์„ ํ•ด์™”์„ ๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์ด ์—†๋Š” PC์—์„œ ํ”„๋กœ๊ทธ๋žจ์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋ฉด ๋กœ๊ทธ๋ฅผ ๋‚จ๊ธฐ๊ณ  ๋ถ„์„ํ•˜์—ฌ ์›์ธ์„ ์ฐพ๊ณ  ํ”„๋กœ๊ทธ๋žจ์„ ์ˆ˜์ •ํ•˜๊ณ , ๋‹ค์‹œ ๋ฐฐํฌํ•˜๋Š” ์ˆœ์„œ๋กœ ์ž‘์—…์„ ํ–ˆ์„ ๊ฒ๋‹ˆ๋‹ค.

์ด์™€ ๋‹ค๋ฅด๊ฒŒ ์›๊ฒฉ ๋””๋ฒ„๊น…์€ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์ด ์—†๋Š” PC์—์„œ ๋””๋ฒ„๊น…์„ ํ•˜๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋‹จ, ์กฐ๊ฑด์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜ธ์ŠคํŠธ PC์—์„œ ์›๊ฒฉ PC๋กœ ๋„คํŠธ์›Œํฌ ์ ‘์†์„ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋™์ผ ๋„คํŠธ์›Œํฌ์— ์žˆ๋‹ค๋ฉด ํ™˜๊ฒฝ ๊ตฌ์„ฑ์ด ๊ฐ„๋‹จํ•˜์ง€๋งŒ, ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ์— ์žˆ๋‹ค๋ฉด ํ™˜๊ฒฝ ๊ตฌ์„ฑ์ด ๊นŒ๋‹ค๋กœ์›Œ์ง‘๋‹ˆ๋‹ค.

๋ณธ๋ฌธ์˜ ์„ค๋ช…์€ ๋™์ผ ๋„คํŠธ์›Œํฌ์— ํ˜ธ์ŠคํŠธ PC์™€ ์›๊ฒฉ PC๊ฐ€ ์กด์žฌํ•˜๋Š” ์ƒํ™ฉ์—์„œ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค. 1:1๋กœ ๋žœ ์ผ€์ด๋ธ”์„ ์—ฐ๊ฒฐํ•˜์—ฌ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

์›๊ฒฉ PC ์„ค์ •

์›๊ฒฉ ๋””๋ฒ„๊ฑฐ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์ „์—, ์›๊ฒฉ PC์˜ IP๋ฅผ 192.168.200.200์œผ๋กœ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ณ ์ • IP ์„ค์ •

์›๊ฒฉ PC์—์„œ ์›๊ฒฉ ๋””๋ฒ„๊ฑฐ๋ฅผ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Visual Studio 2015 ๊ธฐ์ค€์œผ๋กœ ์•„๋ž˜์˜ ๊ฒฝ๋กœ์— ํŒŒ์ผ์ด ์œ„์น˜ํ•ด ์žˆ์Šต๋‹ˆ๋‹ค.

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Remote Debugger\x64\msvsmon.exe

์›๊ฒฉ ๋””๋ฒ„๊ฑฐ ์‹คํ–‰ ํŒŒ์ผ

๋งŒ์•ฝ, Remote Debugger ํด๋”๊ฐ€ ์—†๋‹ค๋ฉด ๋งํฌ์— ์ ‘์†ํ•˜์—ฌ ๋ฒ„์ „์— ๋งž๋Š” ์›๊ฒฉ ๋””๋ฒ„๊ฑฐ๋ฅผ ๋”ฐ๋กœ ๋‹ค์šด๋กœ๋“œ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์›๊ฒฉ ๋””๋ฒ„๊ฑฐ ๋‹ค์šด๋กœ๋“œ ํ™”๋ฉด

msvsmon.exe๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์•Œ๋ฆผ ์ฐฝ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์›๊ฒฉ ๋””๋ฒ„๊น…์„ ์œ„ํ•œ Windows ๋ฐฉํ™”๋ฒฝ ์„ค์ •์ธ๋ฐ, ๋ชจ๋‘ ์ฒดํฌ๋œ ์ƒํƒœ๋กœ ์›๊ฒฉ ๋””๋ฒ„๊น… ๊ตฌ์„ฑ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

์›๊ฒฉ ๋””๋ฒ„๊น… ๊ตฌ์„ฑ ์•Œ๋ฆผ ์ฐฝ

์›๊ฒฉ ๋””๋ฒ„๊ฑฐ๊ฐ€ ์‹คํ–‰๋˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฐฝ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์›๊ฒฉ ๋””๋ฒ„๊ฑฐ ์‹คํ–‰ ํ™”๋ฉด

๋„๊ตฌ์˜ ์˜ต์…˜ ๋ฉ”๋‰ด๋ฅผ ํด๋ฆญํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฐฝ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ์ธ์ฆ ๋ชจ๋“œ๋ฅผ ์ธ์ฆ ์•ˆ ํ•จ์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์ธ์ฆ ์˜ต์…˜ ํ™”๋ฉด

๊ทธ๋ฆฌ๊ณ  C:\test\ ๊ฒฝ๋กœ์— ์›๊ฒฉ ๋””๋ฒ„๊น…ํ•  exe ๋ฐ PDB ํŒŒ์ผ์„ ์œ„์น˜์‹œํ‚ต๋‹ˆ๋‹ค.

์›๊ฒฉ ๋””๋ฒ„๊น…ํ•  exe ๋ฐ PDB ํŒŒ์ผ

ํ˜ธ์ŠคํŠธ PC ์„ค์ •

์ด์ œ ํ˜ธ์ŠคํŠธ PC์—์„œ ์„ค์ •์„ ์ง„ํ–‰ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์›๊ฒฉ PC์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ณ ์ • IP๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ํ˜ธ์ŠคํŠธ PC๋Š” 192.168.200.100์œผ๋กœ IP๋ฅผ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ณ ์ • IP ์„ค์ •

์›๊ฒฉ ๋””๋ฒ„๊น…์„ ์ˆ˜ํ–‰ํ•  ํ”„๋กœ์ ํŠธ ํŒŒ์ผ์„ ์‹คํ–‰ํ•˜๊ณ , ๊ตฌ์„ฑ ๊ด€๋ฆฌ์ž๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ƒˆ๋กœ ๋งŒ๋“ค๊ธฐ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด Remote์ด๋ฆ„์„ ๊ฐ€์ง„ ์ƒˆ๋กœ์šด ๊ตฌ์„ฑ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด ๊ตฌ์„ฑ ๋งŒ๋“ค๊ธฐ

๋‹ค์Œ์œผ๋กœ, ํ”„๋กœ์ ํŠธ ์†์„ฑ์˜ ๋””๋ฒ„๊น…์—์„œ ์›๊ฒฉ Windows ๋””๋ฒ„๊ฑฐ๋ฅผ ์„ ํƒํ•˜๊ณ  ์•„๋ž˜์™€ ๊ฐ™์ด ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

์›๊ฒฉ Windows ๋””๋ฒ„๊ฑฐ ์„ค์ • ํ™”๋ฉด

ํ•ญ๋ชฉ ์„ค๋ช…
์›๊ฒฉ ๋ช…๋ น ์›๊ฒฉ PC์˜ ๋””๋ฒ„๊น…ํ•  ์‹คํ–‰ ํŒŒ์ผ์˜ ๊ฒฝ๋กœ
์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ ์›๊ฒฉ PC์˜ ๋””๋ฒ„๊น…ํ•  ํด๋” ๊ฒฝ๋กœ
์›๊ฒฉ ์„œ๋ฒ„ ์ด๋ฆ„ ์›๊ฒฉ PC์˜ IP ์ฃผ์†Œ

์›๊ฒฉ ๋””๋ฒ„๊น… ์‹คํ–‰

์›๊ฒฉ PC ๋ฐ ํ˜ธ์ŠคํŠธ PC์˜ ์›๊ฒฉ ๋””๋ฒ„๊น… ์ค€๋น„๊ฐ€ ๋ชจ๋‘ ์™„๋ฃŒ๋์Šต๋‹ˆ๋‹ค. ์ด์ œ F5๋ฅผ ๋ˆŒ๋Ÿฌ ๋””๋ฒ„๊น…์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. F5๋ฅผ ๋ˆ„๋ฅด๋Š” ์ˆœ๊ฐ„ ์›๊ฒฉ PC์—์„œ C:\test\Exam_RemoteDebug.exe ํŒŒ์ผ์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

์›๊ฒฉ PC์—์„œ ์˜ˆ์ œ ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋œ ๋ชจ์Šต

์œ„ ์ด๋ฏธ์ง€์ฒ˜๋Ÿผ ์›๊ฒฉ PC์—์„œ ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋ฉด TEST ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ํ˜ธ์ŠคํŠธ PC์—์„œ Break Point๊ฐ€ ์•„๋ž˜์ฒ˜๋Ÿผ ์žกํžˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

ํ˜ธ์ŠคํŠธ PC์—์„œ ์›๊ฒฉ ๋””๋ฒ„๊น…ํ•˜๋Š” ๋ชจ์Šต

F10์„ ๋ˆ„๋ฅด๋ฉด ์ฝ”๋“œ ํ•œ ์ค„ ํ•œ ์ค„ ์‹คํ–‰๋„ ๋ฉ๋‹ˆ๋‹ค. ๋””๋ฒ„๊น…์„ ์ค‘์ง€ํ•˜๋ฉด ์›๊ฒฉ PC์˜ ํ”„๋กœ๊ทธ๋žจ๋„ ์ค‘์ง€๋ฉ๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

์‚ฌ์‹ค ์›๊ฒฉ ๋””๋ฒ„๊น…์ด ์–ธ์ œ ์“ฐ์ผ์ง€ ์˜๋ฌธ์ด๊ธด ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ์žฅ๋น„ PC์— ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์ด ์„ค์น˜๋˜์–ด ์žˆ๊ณ , ์ฆ‰์„์—์„œ ์‹คํ–‰ํ•˜๊ณ  ๋””๋ฒ„๊น…ํ•˜๋ฉด์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์ด ๋” ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋นŒ๋“œํ•˜๊ณ  exe ๋ฐ PDB ์˜ฎ๊ธฐ๊ณ , ๋„คํŠธ์›Œํฌ ๋งž์ถ”๊ณ  ์›๊ฒฉ ๋””๋ฒ„๊น…ํ•˜๊ณ ... ์ด๋ ‡๊ฒŒ ๋น„ํšจ์œจ์ ์ธ ๋ถ€๋ถ„์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ, ์•Œ๊ณ  ์žˆ๋‹ค๋ฉด ์–ธ์  ๊ฐ€๋Š” ์“ฐ์ด๊ฒ ์ฃ ? :)

๋ฐ˜์‘ํ˜•