실행 및 디버그

구성(Configurations)

CMake, Makefile 및 Gradle 프로젝트의 경우, Clion은 프로젝트의 대상별로 빌드 및 실행 가능한 구성을 생성하므로, 빌드 단계 전후에 별도의 UI 대화상자에서 외부 도구를 구성할 수 있습니다.

구성(Configurations)

구성 템플릿(Configuration templates)

구성 템플릿을 사용하여 유닛 테스트나 원격 디버그, 일반 애플리케이션 실행의 구성을 만들어 보세요.

실행 구성

선택한 어떤 구성에서든 실행 파일을 변경할 수 있고, 변경 값을 Not selected(선택하지 않음)로 설정하여 구성이 실행되지 않게 만들 수도 있습니다.

Ctrl+F9를 눌러 프로젝트를 빌드하고 Shift+F10을 눌러 현재 선택된 구성을 실행해 보세요.

디버그 구성 (Debug configuration)

Shift+F9를 눌러 디버그를 실행해 보세요.

디버그를 실행하는 동안 코드 상태를 검사할 수 있도록 CLion은 유용한 단축키를 다양하게 제공합니다(예: Step over/into(스텝오버/인투, F8/F7), Step out(스텝아웃, Shift+F8), Run to cursor(커서 위치로 이동, Alt+F9)).

사용자 정의 빌드 및 실행

custom_target

빌드 시스템 독립 빌드 대상을 사용하면 사용자 지정 대상을 추가하고 대상 구축/정리에 사용할 도구를 구성할 수 있습니다.

CLion으로부터 사용자지정 대상을 실행하고 디버그하기 위해서는 사용자정의 빌드 애플리케이션 템플릿(Custom Build Application template)을 사용하여 각각 해당하는 실행/디버그 구성을 만들어야 합니다.

개별 파일을 다시 컴파일

CLion에서 CMake나 복잡한 데이터베이스 프로젝트를 작업할 때 개발 주기를 단축하려면 Recompile(다시 컴파일, Shift+Ctrl+F9)을 사용해 보세요. 전체 프로젝트를 다시 컴파일하도록 트리거할 필요 없이 선택한 파일의 컴파일만 다시 실행할 수 있습니다.

빌드 유형 디버그/릴리스

CMake를 사용하는 경우, 도구 모음에 있는 실행 구성 전환기나 Run(실행, Shift+Alt+F10)/Debug(디버깅, Shift+Alt+F9) 구성 전환기 팝업 창에서 CMake 프로파일 및 빌드된 유형 사이를 전환할 수 있습니다.

입력/출력

CLion은 PTY를 입출력 유닛으로 사용하기 때문에 Windows에서도 터미널로 프로젝트를 실행하는 것과 비슷한 동작을 예상할 수 있습니다.

디버그

CLion은 모든 플랫폼 기반 GDB 백엔드 및 macOS/Linux 기반 LLDB와 통합됩니다.

프로세스에 연결

프로세스에 연결

CLion을 사용하면, 동일한 시스템 또는 원격 시스템에서 실행 중이지만 IDE에서 시작되지 않은 프로세스를 해당 PID나 프로세스 이름으로 연결하여 디버그할 수 있습니다. CLion에서 기본 제공되는 디버거 UI를 활용해 보세요.

중단점

CLion에는 디버거가 통합되어 코드 실행을 검사할 수 있습니다. 여러 중단점 유형 중에서 선택할 수 있으며 모든 중단점은 별도의 대화 상자(Ctrl+Shift+F8)에서 검토할 수 있습니다.

중단점
  • Line Breakpoints(줄 중단점): 코드를 디버그하는 가장 쉬운 방법입니다. 간단히 줄의 왼쪽 여백을 클릭하여 마우스로 중단점을 설정하세요.
  • Symbolic Breakpoints(심볼 중단점): 특정 함수가 실행되기 시작할 때 프로그램 실행을 중단할 수 있습니다. 코드 완성 기능을 활용해 심볼을 이름으로 검색하여 적절한 함수로 이동하세요.
  • Exception Breakpoints(예외 중단점): 던져진 예외의 위치를 쉽게 확인할 수 있습니다.
실행 지점 설정

실행 지점 설정

Set Execution Point to Cursor(실행 지점을 커서로 설정) 액션을 사용하면 디버그 중에도 프로그램의 실행 지점 사이를 이동하고, 루프를 중단하거나 다시 시작하고, if-else 문이나 switch-case 문에서 다른 브랜치를 선택하고 루프를 완전히 건너뛸 수도 있습니다. 이 기능은 여백의 화살표를 원하는 라인으로 드래그 앤 드롭하는 것만큼 간단합니다.

감시 및 평가

STL 컨테이너 내용을 포함해 모든 이용 가능한 변수의 설명이 Debug(디버그) 도구 창의 Variables(변수) 탭에 표시됩니다. 현재 진행되는 디버깅 세션을 중단할 필요 없이 이 탭에서 값을 확인하고 변경할 수도 있습니다.

표현식 평가

GDB/LLDB 탭에서는 GDB/LLDB 콘솔에 액세스할 수 있고 Frame(프레임) 및 Watches(감시) 보기에서는 모든 문제를 더 자세히 검사할 수 있습니다. 또한 감시할 심볼을 선택할 때 자동 완성 기능을 이용할 수 있습니다.

그 외에, 디버깅 세션 동안 간단히 Alt+F8을 누르면 모든 표현식을 평가할 수 있습니다.

변수 인라인화 보기

변수 인라인화 보기

이 기능을 사용하면 현재 변숫값을 에디터에서 바로 확인할 수 있습니다(변수 선언 옆). Debug(디버그) 도구 창의 Variables(변수) 탭으로 전환할 필요가 없습니다.

디스어셈블리

디스어셈블리 보기

에디터에서 적절히 강조 표시된 어셈블리 코드를 읽고 단계별로 문제를 조사하세요.

어셈블리 코드를 단계별로 실행하는 동안 명령줄에서 중단점을 추가/제거할 수 있습니다. 이러한 주소 중단점에 디폴트가 아닌 구성을 사용하려면, 마우스 오른쪽 버튼 클릭 컨텍스트 메뉴를 사용하세요.

GDB와 LLDB에 대해 지원됩니다.

메모리 뷰

메모리 뷰

메모리 보기는 디버그 모드에서 포인터 뒤에서 메모리를 덤프합니다. 호출하려면 디버거의 변수 보기에서 포인터 변수를 선택하고 Ctrl+Enter 을 누르세요.

스테핑 중에 만약 메모리 보기를 실행한 경우, CLion은 선택한 메모리 조각에서 발생하는 메모리 변경 사항을 강조 표시합니다.

메모리 뷰에서 특정 메모리 주소로 이동할 수 있습니다. 주소를 나타내는 16진수 값, 포인터 변수를 사용하거나 관심 있는 변수의 주소(&)를 호출하세요.

코드 완성 기능은 알려진 심볼을 지원합니다.

루트 권한으로 디버그

루트 권한으로 디버그

CLion에서는 루트 권한으로 애플리케이션을 실행 및 디버그할 수 있습니다. 해당하는 실행/디버그 구성에서 이 옵션을 선택하기만 하면 됩니다. 이 기능은 CMake, Makefile, Gradle Native, 사용자 지정 빌드 및 CTest 애플리케이션에서 작동합니다.

코어 덤프 디버깅

코어 덤프 디버깅

Run(실행) | Open Core Dump(코어 덤프 열기)… 액션을 사용하면 CLion에서 충돌이 발생한 프로세스의 기존 코어 덤프를 열고 바로 디버그할 수 있습니다. 사용자는 프레임과 변수 뷰를 검사하고 메모리 및 디스어셈블리 뷰를 확인하고, 표현식을 평가하고 디버거 콘솔에서 디버거 명령어를 실행할 수 있습니다.

Parallel Stacks(병렬 스택) 뷰

Parallel Stacks(병렬 스택) 뷰

멀티 스레드 애플리케이션을 디버그할 때는 동시에 여러 스레드를 추적해야 합니다. Parallel Stacks(병렬 스택) 뷰는 Debug(디버그) 도구 창에서 별도의 탭으로 실행되며, 모든 스레드에 대한 스레드 호출 스택 정보를 표시합니다. 이 뷰에서 실행 중인 모든 스레드의 호출 경로와 실행 지점을 확인할 수 있습니다.

Windows의 심볼 서버

디버그 중 로컬 시스템에서 라이브러리 심볼을 사용할 수 없는 경우, 디버그 심볼을 각 개발자의 시스템이 아닌 서버에 중앙집중식으로 저장하는 파일 서버인 심볼 서버를 사용할 수 있습니다. CLion을 Windows에서 이용할 경우 Settings(설정) | Build, Execution, Deployment(빌드, 실행, 배포) | Debugger(디버거) | Symbol Servers(심볼 서버)를 통해 디버거의 심볼 서버를 구성할 수 있습니다.

자세히 알아보기.