Linux 프로젝트 배포, 실행 및 디버그Deploy, run, and debug your Linux project

Linux 프로젝트를 만들고 Linux 연결 관리자를 사용하여 프로젝트에 연결한 후 프로젝트를 실행하고 디버그할 수 있습니다.Once you have created a Linux project and you have connected to the project using the Linux Connection Manager, you can run and debug the project. 원격 대상에서 코드를 컴파일, 실행 및 디버그합니다.You compile, execute, and debug the code on the remote target.

Linux 프로젝트를 조작하고 디버그할 수 있는 여러 가지 방법이 있습니다.There are several ways to interact with and debug your Linux project.

  • 중단점, 조사식 창과 같은 기존의 Visual Studio 기능을 사용하여 변수를 마우스 단추로 가리켜 디버그합니다.Debug using traditional Visual Studio features, such as breakpoints, watch windows, and hovering over a variable. 이러한 메서드를 사용하여 다른 프로젝트 형식에 사용하는 일반적인 방법으로 디버그할 수 있습니다.Using these methods, you may debug as you normally would for other project types.
  • 특별한 Linux 콘솔 창에서 대상 컴퓨터의 출력을 봅니다.View output from the target computer in a special Linux Console window. 또한 콘솔을 사용하여 대상 컴퓨터에 입력을 보낼 수 있습니다.You can also use the console to send input to the target computer.


Linux의 ARM 디버깅은 Visual Studio에서 포함된 ARM 장치 디버깅 블로그 게시물을 참조하세요.For ARM debugging on Linux, see this blog post: Debugging an embedded ARM device in Visual Studio.

Linux 프로젝트 디버그Debug your Linux project

  1. 디버깅 속성 페이지에서 디버깅 모드를 선택합니다.Select debugging mode in the Debugging property page.

    GDB는 Linux에서 실행되는 응용 프로그램을 디버그하는 데 사용됩니다.GDB is used to debug applications running on Linux. 그러나 GDB는 두 가지 모드에서 실행할 수 있고, 모드는 프로젝트의 디버깅 속성 페이지에 있는 디버깅 모드에서 선택할 수 있습니다.However, this can run in two different modes, which can be selected from the Debugging Mode option in the project's Debugging property page:

    GDB 옵션

    • gdbserver 모드에서 원격 시스템에서 실행되는 gdbserver에 연결된 GDB는 로컬에서 실행됩니다.In gdbserver mode, GDB is run locally which connects to gdbserver running on the remote system. [Linux 콘솔] 창이 지원하는 모드는 이 모드뿐입니다.Note that this is the only mode which the Linux Console window supports.

    • gdb 모드에서 Visual Studio 디버거는 로컬 버전의 GDB가 대상 컴퓨터에 설치된 버전과 호환되지 않을 경우 더 호환성이 높은 원격 시스템에서 GDB를 실행합니다.In gdb mode, the Visual Studio debugger drives GDB on the remote system, which is more compatible if the local version of GDB is not compatible with the version installed on the target computer. |


      gdbserver 디버깅 모드에서 중단점에 도달할 수 없는 경우 gdb 모드를 시도해 보세요.If you are unable to hit breakpoints in gdbserver debugging mode, try gdb mode. 우선 원격 대상에 gdb가 설치되어 있어야 합니다.gdb must first be installed on the remote target.

  2. Visual Studio에서 표준 디버그 도구 모음을 사용하여 원격 대상을 선택합니다.Select the remote target using the standard Debug toolbar in Visual Studio.

    사용할 수 있는 원격 대상은 목록에 이름 또는 IP 주소로 표시됩니다.When the remote target is available, you will see it listed by either name or IP address.

    원격 대상

    아직 원격 대상에 연결하지 않은 경우 Linux 연결 관리자를 사용하여 원격 대상에 연결하라는 지침이 표시됩니다.If you have not yet connected to the remote target, you will see an instruction to use Linux Connection Manager to connect to the remote target.

    원격 아키텍처

  3. 실행될 것을 알고 있는 일부 코드의 왼쪽 여백을 클릭하여 중단점을 설정합니다.Set a breakpoint by clicking in the left gutter of some code that you know will execute.

    중단점을 설정한 코드 줄에 빨간 점이 표시됩니다.A red dot appears on the line of code where you set the breakpoint.

  4. F5 키(또는 디버그 > 디버깅 시작)를 눌러 디버깅을 시작합니다.Press F5 (or Debug > Start Debugging) to start debugging.

    디버깅을 시작하면 응용 프로그램이 시작되기 전에 원격 대상에서 컴파일됩니다.When you start debugging, the application is compiled on the remote target before it starts. 모든 컴파일 오류는 오류 목록 창에 표시됩니다.Any compilation errors will appear in the Error List window.

    오류가 없는 경우 앱이 시작되고 디버거가 중단점에서 일시 중지됩니다.If there are no errors, the app will start and the debugger will pause at the breakpoint.

    중단점 도달

    이제 F10 또는 F11 키와 같은 명령 키를 눌러 현재 상태의 응용 프로그램과 상호 작용하고, 변수를 보고, 코드 사이를 이동할 수 있습니다.Now, you can interact with the application in it's current state, view variables, and step through code by pressing command keys such as F10 or F11.

  5. Linux 콘솔을 사용하여 앱과 상호 작용하려면 디버그 > Linux 콘솔을 선택합니다.If you want to use the Linux Console to interact with your app, select Debug > Linux Console.

    Linux 콘솔 메뉴

    이 콘솔에서는 대상 컴퓨터의 콘솔 출력을 표시하고 입력을 받아들이고 대상 컴퓨터로 보냅니다.This console will display any console output from the target computer as well as take input and send it to the target computer.

    Linux 콘솔 창

다른 디버깅 옵션 구성Configure other debugging options

  • 프로젝트의 디버깅 속성 페이지에서 프로그램 인수 항목을 사용하여 명령줄 인수를 실행 파일에 전달할 수 있습니다.Command line arguments can be passed to the executable using the Program Arguments item in the project's Debugging property page.

    프로그램 인수

  • 특정 디버거 옵션은 추가 디버거 명령 항목을 통해 GDB에 전달될 수 있습니다.Specific debugger options can be passed to GDB using the Additional Debugger Commands entry. 예를 들어 SIGILL(잘못된 명령) 신호를 무시하고자 할 경우For example, you might want to ignore SIGILL (illegal instruction) signals. handle 명령을 사용하여 신호를 무시할 수 있습니다.You could use the handle command to achieve this. 위 그림처럼 추가 디버거 명령 항목에 다음 내용을 추가하면 됩니다.by adding the following to the Additional Debugger Commands entry as shown above:

    handle SIGILL nostop noprint

참고 항목See also

C++ 디버깅 속성(Linux C++).C++ Debugging Properties (Linux C++).