분기 추적
분기 추적 (Branch trace)은 컴퓨터 프로그램 디버깅 툴 또는 분석 기법이다. 이것은 오직 분기 명령어들이 성공적으로 기록된 단축된 명령어 추적이다. IBM 시스템/360에서 이것은 프로그램 사상 기록 (PER: Program-Event Recording)[1]의 한 부분으로서 구현되었지만 응용 프로그램 프로그래밍 수준에서는 거의 사용되지 않았다. 이들의 오버헤드 때문에 PER 하드웨어가 사용되었으며, MVS 시스템에서는 제거되었다.
이것은 또한 펜티엄4, 인텔 제논 그리고 인텔 프로세서의 이후 버전들에서 사용 가능하다.[2] 분기 추적을 가능케 하는 전용 프로세서 명령어들이 있으며, 실행된 브랜치들을 상주 메모리의 특별한 '분기 추적 저장소'에 넣는다. 분기 추적 저장소는 또한 순환 버퍼로 설정될 수 있으며, 마지막으로 실행된 분기가 기록된다. 인텔 프로세서를 분기 추적하는 것은 "40 x 애플리케이션 런타임"의 속도 지연을 유발할 수 있다.[3]
사용[편집]
분기 추적과 프로그램을 목록화한 컴파일러에 대한 실행 가능성과 참조로, 실행된 명령어들의 전체 경로는 재구성될 수 있다. 더 많은 노력으로, 전체 경로는 메모리 덤프 와 분기 추적으로 재구성될 수 있다.
대안[편집]
분기들 사이의 명령어들을 포함하는 모든 명령어들에 대한 더 포괄적인 추적은 명령어 집합 시뮬레이터의 사용으로 인해 달성될 수 있다. 전체 명령어 추적은 메모리 변경의 주소/길이와 값 같은 추가적인 정보를 제공할 수 있다.
각주[편집]
- ↑ [1][깨진 링크(과거 내용 찾기)]
- ↑ IA-32 Intel® Architecture Software Developer’s Manual (ftp://download.intel.com/support/processors/celeron/sb/6.pdf[깨진 링크(과거 내용 찾기)]), Volume 3B: System Programming Guide, Part 2, Chapter 18.4 Last branch recording overview.
- ↑ Exploiting Hardware Advances for Software Testing and Debugging (NIER Track), by Mary Lou Soffa, Kristen R. Walcott, Jason Mars, in Proceedings of ICSE, 2011.
같이 보기[편집]
- Instruction set simulator
- Program animation
외부 링크[편집]
- Introduce new branch tracer 'perf branch' by Akihiro Nagai.