CMake, Makefile 및 Gradle 프로젝트의 경우, Clion은 프로젝트의 대상별로 빌드 및 실행 가능한 구성을 생성하므로, 빌드 단계 전후에 별도의 UI 대화상자에서 외부 도구를 구성할 수 있습니다.
구성 템플릿을 사용하여 유닛 테스트나 원격 디버그, 일반 애플리케이션 실행의 구성을 만들어 보세요.
선택한 어떤 구성에서든 실행 파일을 변경할 수 있고, 변경 값을 Not selected(선택하지 않음)로 설정하여 구성이 실행되지 않게 만들 수도 있습니다.
Ctrl+F9를 눌러 프로젝트를 빌드하고 Shift+F10을 눌러 현재 선택된 구성을 실행해 보세요.
Shift+F9를 눌러 디버그를 실행해 보세요.
디버그를 실행하는 동안 코드 상태를 검사할 수 있도록 CLion은 유용한 단축키를 다양하게 제공합니다(예: Step over/into(스텝오버/인투, F8/F7), Step out(스텝아웃, Shift+F8), Run to cursor(커서 위치로 이동, Alt+F9)).
빌드 시스템 독립 빌드 대상을 사용하면 사용자 지정 대상을 추가하고 대상 구축/정리에 사용할 도구를 구성할 수 있습니다.
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)에서 검토할 수 있습니다.
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(병렬 스택) 뷰는 Debug(디버그) 도구 창에서 별도의 탭으로 실행되며, 모든 스레드에 대한 스레드 호출 스택 정보를 표시합니다. 이 뷰에서 실행 중인 모든 스레드의 호출 경로와 실행 지점을 확인할 수 있습니다.
디버그 중 로컬 시스템에서 라이브러리 심볼을 사용할 수 없는 경우, 디버그 심볼을 각 개발자의 시스템이 아닌 서버에 중앙집중식으로 저장하는 파일 서버인 심볼 서버를 사용할 수 있습니다. CLion을 Windows에서 이용할 경우 Settings(설정) | Build, Execution, Deployment(빌드, 실행, 배포) | Debugger(디버거) | Symbol Servers(심볼 서버)를 통해 디버거의 심볼 서버를 구성할 수 있습니다.