효율적인 디버깅을 위해 반드시 숙지해야 할 핵심 단축키입니다. (설정: 일반 개발 설정 기준)
| 기능 | 단축키 | 설명 |
|---|---|---|
| 실행 / 계속 | F5 | 디버깅 시작 또는 다음 중단점까지 계속 실행 |
| 디버깅 중지 | Shift + F5 | 현재 디버깅 세션 즉시 종료 |
| 다시 시작 | Ctrl + Shift + F5 | 디버깅을 종료하고 즉시 다시 시작 (Rebuild 아님) |
| 중단점 설정/해제 | F9 | 커서 위치에 중단점(Breakpoint) 토글 |
| 프로시저 단위 실행 | F10 (Step Over) | 함수 내부로 들어가지 않고 한 줄씩 실행 |
| 한 단계씩 코드 실행 | F11 (Step Into) | 함수 호출 시 해당 함수 내부로 진입하여 실행 |
| 프로시저 나가기 | Shift + F11 (Step Out) | 현재 함수를 끝까지 실행하고 호출한 곳으로 리턴 |
| 커서까지 실행 | Ctrl + F10 | 현재 마우스 커서가 있는 줄까지 코드를 실행하고 멈춤 (매우 유용) |
단순히 변수 값만 보는 것이 아니라, 포맷 변경, 수식 계산, 특수 변수를 활용할 수 있습니다.
변수명 뒤에 ,와 코드를 붙여 원하는 형태로 값을 확인합니다. (특히 비트 연산 디버깅에 필수)
| 지정자 (C/C++) | 지정자 (C#) | 설명 | 예시 (입력 → 출력) |
|---|---|---|---|
| d | d | 10진수 정수 | flag,d $\rightarrow$ 10 |
| h 또는 x | h 또는 x | 16진수 (Hex) | flag,x $\rightarrow$ 0x0A |
| b | b (VS2022+) | 2진수 (Binary) | flag,b $\rightarrow$ 0b00001010 (비트 플래그 확인 시 최적) |
| s | nq (No Quotes) | 문자열 (따옴표 제거) | str,nq $\rightarrow$ Hello |
| mq | - | 메모리 뷰 확인 | 문자열 포인터 등의 메모리 덤프 확인 |
💡 Tip: C++에서는 변수명,bb를 입력하면 앞의 0b를 뺀 순수 비트값만 볼 수 있습니다.
디버거가 제공하는 특수 변수로, 현재 상태를 추적할 때 유용합니다.
$err (또는 $hr): 마지막으로 발생한 오류 코드(GetLastError 값)를 보여줍니다. API 호출 실패 원인을 찾을 때 유용합니다.$returnValue: 방금 실행된 함수의 반환값을 보여줍니다. (변수에 받지 않고 실행만 했을 때 확인 용도)$exception: (C#) 현재 발생한 예외 객체의 정보를 보여줍니다. catch 블록 내부에서 유용합니다.단순히 멈추는 것이 아니라, 조건이나 로깅을 위해 사용합니다. (빨간 점 우클릭 $\rightarrow$ 조건/작업)
true일 때만 멈춥니다.i == 1024 (루프가 1024번 돌았을 때만 멈춤)(flags & 0x04) != 0 (특정 비트가 셋팅되었을 때만 멈춤)