Trace32를 쓰다 보면 버튼으로 시작하지만, 결국 어느 순간부터는 명령어를 직접 사용하게 된다.
문제는 명령어가 너무 많다는 점이다.
처음부터 전부 외우려고 하면 오히려 더 헷갈린다.
그래서 중요한 건 하나다.
“실무에서 자주 쓰는 것만 먼저 익히는 것”
이 글에서는 실제 디버깅 과정에서 반복적으로 사용하는 명령어만 상황과 함께 정리한다.
1. 프로그램을 멈출 때 – Break
디버깅은 멈추는 것부터 시작한다.
Break
코드를 실행하다가 현재 위치에서 즉시 정지한다.
빠르게 상태를 확인할 때 가장 먼저 사용한다.
2. 다시 실행할 때 – Go
멈춘 상태에서 프로그램을 다시 실행한다.
Go
Breakpoint가 있다면 해당 위치에서 자동으로 멈춘다.
Break와 함께 가장 기본이 되는 명령어다.
3. 원하는 위치에서 멈출 때 – Break.Set
특정 코드 위치에서 자동으로 멈추고 싶을 때 사용한다.
Break.Set 0x1012C1C4
사람이 타이밍을 맞추지 않아도 정확한 위치에서 멈출 수 있다.
4. Breakpoint 확인 – Break.List
현재 설정된 Breakpoint를 확인한다.
Break.List
여러 개를 걸어두었을 때 전체 상태를 한 번에 파악할 수 있다.
5. 메모리 확인 – Data.List
특정 주소의 메모리 값을 직접 확인할 때 사용한다.
Data.List 0x1012C1C4
버퍼, 배열, 통신 데이터 확인할 때 자주 사용된다.
“변수”가 아니라 “실제 메모리”를 보는 명령어다.
6. 변수 값 확인 – Var.Watch
변수 이름 기준으로 값을 확인할 때 사용한다.
Var.Watch
가장 직관적인 디버깅 방법이다.
값 변화를 계속 보고 싶을 때 유용하다.
7. 레지스터 확인 – Register.View
CPU 상태를 직접 확인할 때 사용한다.
Register.View
이 명령어를 실행하면
- PC (현재 실행 위치)
- SP (스택 위치)
- R0~R12 (레지스터 값)
을 확인할 수 있다.

특히 PC 값을 통해 “지금 어디서 멈췄는지”를 판단할 수 있다.
8. 코드 한 줄씩 실행 – Step
코드를 한 줄씩 따라가며 실행한다.
Step
함수 내부까지 상세하게 확인할 때 사용한다.
9. 함수 단위 실행 – Next
Step과 비슷하지만 함수 내부로 들어가지 않는다.
Next
함수 내부는 중요하지 않을 때 디버깅 시간을 줄일 수 있다.
10. 시스템 상태 확인 – SYStem.State
현재 CPU 상태를 확인할 때 사용한다.
System.state
실행 중인지, 멈춘 상태인지 확인할 때 사용된다.
흐름으로 보면 이렇게 사용된다.
이 명령어들은 따로 쓰는 것이 아니라 하나의 흐름 안에서 함께 사용된다.
- 실행 (Go)
- 특정 위치에서 멈춤 (Break.Set)
- 현재 위치 확인 (Register.View)
- 변수 확인 (Var.Watch)
- 메모리 확인 (Data.List)
- 코드 흐름 분석 (Step / Next)
이 흐름이 익숙해지면 Trace32 디버깅이 훨씬 자연스러워진다.
정리
Trace32 명령어는 많지만, 실무에서 반복적으로 사용하는 것은 정해져 있다.
이 10개만 익숙해져도 대부분의 디버깅 상황을 처리할 수 있다.
많이 아는 것보다, 자주 쓰는 명령어를 정확히 아는 것이 중요하다.
'Trace32' 카테고리의 다른 글
| [Trace32] Call Stack 제대로 읽는 방법 (실제 흐름으로 이해하기) (0) | 2026.05.05 |
|---|---|
| [Trace32] Step vs Over 차이 (여기서 대부분 헷갈린다) (0) | 2026.05.05 |
| [Trace32] 조건부 Breakpoint 제대로 쓰는 방법 (Change Breakpoint 창 실무 활용) (0) | 2026.05.04 |
| [Trace32] 코드 원하는 위치에서 정확히 멈추는 방법 (Breakpoint 실무 사용법) (1) | 2026.05.03 |
| [Trace32] 상단 아이콘을 '순서'로 이해하기 (CPU 제어 흐름으로 보는 UI) (0) | 2026.05.03 |