분기 트레이스
Branch trace브랜치 트레이스는 컴퓨터 프로그램 디버깅툴 또는 분석 기술입니다.이는 분기 명령어만 기록되는 간략화된 명령어 트레이스입니다.IBM System/360에서는 PER([1]Program-Event Recording)의 일부로 구현되었지만 애플리케이션 프로그래밍 수준에서는 거의 사용되지 않았습니다.프로그램 이벤트 기록 하드웨어가 사용되었으며 이 도구의 오버헤드로 인해 고객이 사용할 수 있는 MVS 시스템에서 제거되었습니다.
브랜치 트레이스는 Pentium 4, Xeon 및 그 이후의 인텔 [2]프로세서에서도 사용할 수 있습니다.브랜치 트레이스를 유효하게 해, 실행한 브랜치를 상주 메모리의 특수한 인텔 브랜치 트레이스 스토어(BTS) 영역에 보존하기 위한 전용 프로세서명령어가 있습니다.Branch Trace Store를 순환 버퍼로 구성하여 마지막으로 실행된 분기가 기록되도록 할 수도 있습니다.브런치 트레이스 스토어를 사용하는 인텔 프로세서의 브런치 트레이스에서는, 애플리케이션의 실행 시간이 40배 늦어지는 [3]일이 있습니다.인텔 Core M 및 제5세대 인텔 프로세서에 대해서는 인텔 PT (프로세서 트레이스)가 도입되어 완전한 흐름 트레이스를 실현하는 것을 목적으로 하고 있습니다.인텔 PT는 프로그램 실행에 미치는 영향은 최소 수준(<5%)[4]에 불과하다고 합니다.
사용하다
분기 트레이스와 함께 프로그램의 컴파일러 목록과 참조를 통해 실행된 명령의 전체 경로를 재구성할 수 있습니다.더 많은 노력을 기울이면 전체 경로를 메모리 덤프(프로그램 스토리지 포함)와 분기 트레이스로 재구성할 수도 있습니다.
대체 수단
(일부 플랫폼에서 사용 가능한 경우) 명령 집합 시뮬레이터를 사용하면 모든 명령(브런치 간 명령 포함)에 대한 보다 포괄적인 트레이스를 얻을 수 있습니다.완전한 명령 트레이스는 주소/길이, 메모리 변경 값 등의 추가 정보를 제공할 수 있습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ "IBM Knowledge Center". publib.boulder.ibm.com.[영구 데드링크]
- ^ IA-32 인텔®아키텍처 소프트웨어 개발자 매뉴얼 (ftp://download.intel.com/support/processors[permanent dead link]/celeron/sb/6.pdf), Volume 3B: System Programming Guide, Part 2, Chapter 18.4 마지막 브랜치 레코딩 개요.
- ^ Mary Lou Soffa, Kristen R.의 소프트웨어 테스트 및 디버깅을 위한 하드웨어 어드밴스 활용(NIER Track).월콧, 제이슨 마스, ICSE Proceedings of ICSE, 2011.4.2장 Branch Trace Store를 참조하십시오.
- ^ 인텔 ® 64 및 IA-32 아키텍처 소프트웨어 개발자 매뉴얼, 제35 장 인텔 프로세서 트레이스를 참조해 주세요.
외부 링크
- 나가이 아키히로의 새로운 브랜치 트레이서 「perf branch」를 소개합니다.