๋ฐ˜์‘ํ˜•

C#์—์„œ ์›๊ฒฉ ๋””๋ฒ„๊น…(Remote Debugging)ํ•˜๊ธฐ

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

[๋””๋ฒ„๊น…] Visual Studio 2015 MFC ์›๊ฒฉ ๋””๋ฒ„๊น…(Remote Debugging)ํ•˜๊ธฐ!

 

[๋””๋ฒ„๊น…] Visual Studio 2015 MFC ์›๊ฒฉ ๋””๋ฒ„๊น…(Remote Debugging)ํ•˜๊ธฐ!

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

luckygg.tistory.com

์›๊ฒฉ ๋””๋ฒ„๊น…์„ ์œ„ํ•œ ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ

์›๊ฒฉ ๋””๋ฒ„๊น…์„ ์œ„ํ•ด ๋กœ์ปฌ PC์™€ ์›๊ฒฉ PC๋Š” ๊ฐ™์€ ๋„คํŠธ์›Œํฌ์— ์กด์žฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ๋กœ์ปฌ PC์™€ ์›๊ฒฉ PC๋ฅผ ์ง์ ‘ ๋žœ ์ผ€์ด๋ธ”๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋ฉด ์›๊ฒฉ ๋””๋ฒ„๊น…์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์ง์ ‘-์—ฐ๊ฒฐํ•œ-๋„คํŠธ์›Œํฌ-๊ตฌ์„ฑ
์ง์ ‘-์—ฐ๊ฒฐํ•œ-๋„คํŠธ์›Œํฌ-๊ตฌ์„ฑ

๋˜๋Š” ํ—ˆ๋ธŒ์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” PC๋ผ๋ฆฌ๋„ ์›๊ฒฉ ๋””๋ฒ„๊น…์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋™์ผ-ํ—ˆ๋ธŒ์—-์—ฐ๊ฒฐ๋˜์–ด-์žˆ๋Š”-๋„คํŠธ์›Œํฌ-๊ตฌ์„ฑ
๋™์ผ-ํ—ˆ๋ธŒ์—-์—ฐ๊ฒฐ๋˜์–ด-์žˆ๋Š”-๋„คํŠธ์›Œํฌ-๊ตฌ์„ฑ

์›๊ฒฉ PC ์ค€๋น„ ๊ณผ์ •

1. ์›๊ฒฉ ๋””๋ฒ„๊ฑฐ ์„ค์น˜

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

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

๋งŒ์•ฝ, ๊ฐœ๋ฐœํ™˜๊ฒฝ์ด ์—†๋Š” PC๋ผ๋ฉด ์›๊ฒฉ ๋””๋ฒ„๊ฑฐ๋ฅผ ๋”ฐ๋กœ ๋‹ค์šด๋กœ๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Visual Studio ๋ฒ„์ „์— ๋”ฐ๋ฅธ ์›๊ฒฉ ๋””๋ฒ„๊ฑฐ๋Š” ์•„๋ž˜ ๋งํฌ์—์„œ ๋‹ค์šด๋กœ๋“œ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

https://docs.microsoft.com/ko-kr/visualstudio/debugger/remote-debugging-csharp?view=vs-2022

 

์›๊ฒฉ ๋””๋ฒ„๊ทธ C# ๋˜๋Š” VB ํ”„๋กœ์ ํŠธ - Visual Studio (Windows)

๋‹ค์Œ ๋‹จ๊ณ„๋ณ„ ์ง€์นจ์— ๋”ฐ๋ผ ์›๊ฒฉ ์ปดํ“จํ„ฐ์—์„œ Visual Studio C# ๋˜๋Š” Visual Basic ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋””๋ฒ„๊ทธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ด…๋‹ˆ๋‹ค.

docs.microsoft.com

2. ์›๊ฒฉ ๋””๋ฒ„๊ฑฐ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ ์‹คํ–‰

์›๊ฒฉ ๋””๋ฒ„๊ฑฐ๋ฅผ ์„ค์น˜ํ•œ ํ›„ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์›๊ฒฉ-๋””๋ฒ„๊ฑฐ๋ฅผ-๊ด€๋ฆฌ์ž-๊ถŒํ•œ์œผ๋กœ-์‹คํ–‰ํ•˜๊ธฐ
์›๊ฒฉ ๋””๋ฒ„๊ฑฐ๋ฅผ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰ํ•˜๊ธฐ

์‹คํ–‰ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ํ”„๋กœ๊ทธ๋žจ์ด ์ƒ์„ฑ๋˜๊ณ , PC ์ด๋ฆ„๊ณผ ํฌํŠธ ๋ฒˆํ˜ธ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ด ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ๋กœ์ปฌ PC์—์„œ ์ ‘์†ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

PC์ด๋ฆ„๊ณผํฌํŠธ-๋ฒˆํ˜ธ๊ฐ€-ํ‘œ์‹œ๋œ-๋ชจ์Šต
PC์ด๋ฆ„๊ณผํฌํŠธ ๋ฒˆํ˜ธ๊ฐ€ ํ‘œ์‹œ๋œ ๋ชจ์Šต

๋กœ์ปฌ PC ์ค€๋น„ ๊ณผ์ •

C# ํ”„๋กœ์ ํŠธ๋ฅผ ์ค€๋น„ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์‹œ๋กœ, ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ๋ฐ›๋Š” Console ํ”„๋กœ๊ทธ๋žจ์„ ์ค€๋น„ํ•ด ๋ดค์Šต๋‹ˆ๋‹ค.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ExamRemoteDebugger
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Remote Debugger Sample Program");
            string input = Console.ReadLine();   
        }
    }
}

ํ”„๋กœ์ ํŠธ์˜ ์†์„ฑ ๋ฉ”๋‰ด๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋””๋ฒ„๊ทธ ํƒญ์—์„œ ์›๊ฒฉ ์ปดํ“จํ„ฐ ์‚ฌ์šฉ์„ ์ฒดํฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์›๊ฒฉ PC์—์„œ ์›๊ฒฉ ๋””๋ฒ„๊ฑฐ๋ฅผ ์‹คํ–‰ํ–ˆ์„ ๋•Œ ํ‘œ์‹œ๋๋˜ PC ์ด๋ฆ„๊ณผ ํฌํŠธ๋ฅผ ์˜†์˜ ์ž…๋ ฅ๋ž€์— ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

์›๊ฒฉ-์ปดํ“จํ„ฐ-์‚ฌ์šฉ-์ฒดํฌ-๋ฐ-์ปดํ“จํ„ฐ-์ •๋ณด-์ž…๋ ฅ
์›๊ฒฉ ์ปดํ“จํ„ฐ ์‚ฌ์šฉ ์ฒดํฌ ๋ฐ ์ปดํ“จํ„ฐ ์ •๋ณด ์ž…๋ ฅ

์ด์ œ ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œํ•˜๋ฉด ์•„๋ž˜ Debug ๊ฒฝ๋กœ์— ํŒŒ์ผ์ด ์ƒ์„ฑ๋์„ ๊ฑด๋ฐ์š”. ์ด ํŒŒ์ผ์„ ์›๊ฒฉ PC์— ๋™์ผํ•œ ๊ฒฝ๋กœ๋กœ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋นŒ๋“œ-ํ›„-์ƒ์„ฑ๋œ-Debug-ํŒŒ์ผ
๋นŒ๋“œ ํ›„ ์ƒ์„ฑ๋œ Debug ํŒŒ์ผ

์ฃผ์˜
 
 

์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•  ๋•Œ๋งˆ๋‹ค ์ด ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋กœ์ปฌ PC์™€ ์›๊ฒฉ PC์˜ ์ •๋ณด๊ฐ€ ์ •ํ™•ํžˆ ์ผ์น˜ํ•ด์•ผ ์›๊ฒฉ ๋””๋ฒ„๊น…์ด ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์ด์ œ ๋กœ์ปฌ PC์—์„œ ๋””๋ฒ„๊น…์„ ์‹œ์ž‘ํ•˜๋ฉด, ์›๊ฒฉ PC์˜ ์›๊ฒฉ ๋””๋ฒ„๊ฑฐ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์›๊ฒฉ-๋””๋ฒ„๊ฑฐ์—-์ ‘์†๋œ-๋กœ์ปฌ-PC์˜-์ •๋ณด
์›๊ฒฉ ๋””๋ฒ„๊ฑฐ์— ์ ‘์†๋œ ๋กœ์ปฌ PC์˜ ์ •๋ณด

๋งŒ์•ฝ, ์›๊ฒฉ PC์—์„œ ๊ณ„์ • ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ๋‹ค๋ฉด ๊ณ„์ • ์ด๋ฆ„๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์›๊ฒฉ-PC์˜-๊ณ„์ •-์ •๋ณด-์ž…๋ ฅ
์›๊ฒฉ PC์˜ ๊ณ„์ • ์ •๋ณด ์ž…๋ ฅ

์ด์ œ ๋กœ์ปฌ PC์—์„œ ์›๊ฒฉ PC์˜ ์ œ์–ด๋กœ ๋””๋ฒ„๊น…์ด ๊ฐ€๋Šฅํ•ด์ง‘๋‹ˆ๋‹ค!

์›๊ฒฉ-PC-์›๊ฒฉ-๋””๋ฒ„๊น…-์ค‘์ธ-๋ชจ์Šต
์›๊ฒฉ PC ์›๊ฒฉ ๋””๋ฒ„๊น… ์ค‘์ธ ๋ชจ์Šต

๋ฐ˜์‘ํ˜•