Intel 64 and IA-32 Architectures Software Developers Manual Volume 3B, System Programming Guide Part 2

Table Of Contents
18-14 Vol. 3
DEBUGGING AND PERFORMANCE MONITORING
18.4 LAST BRANCH RECORDING OVERVIEW
P6 family processors introduced the ability to set breakpoints on taken branches,
interrupts, and exceptions, and to single-step from one branch to the next. This
capability has been modified and extended in the Pentium 4, Intel Xeon, Pentium M,
Intel
®
Core™ Solo, Intel
®
Core™ Duo, Intel
®
Core™2 Duo and Intel
®
Atom
processors to allow logging of branch trace messages in a branch trace store (BTS)
buffer in memory.
See the following sections:
Section 18.5, “Last Branch, Interrupt, and Exception Recording (Intel
®
Core
2 Duo and Intel
®
Atom
Processor Family)”
Section 18.6, “Last Branch, Interrupt, and Exception Recording (Intel
®
Core
i7 Processor Family)”
Section 18.7, “Last Branch, Interrupt, and Exception Recording (Processors
based on Intel NetBurst
®
Microarchitecture)”
Section 18.8, “Last Branch, Interrupt, and Exception Recording (Intel
®
Core
Solo and Intel
®
Core
Duo Processors)”
Section 18.9, “Last Branch, Interrupt, and Exception Recording (Pentium M
Processors)”
Section 18.10, “Last Branch, Interrupt, and Exception Recording (P6 Family
Processors)”
The last branch recording mechanism tracks not only branch instructions (like JMP,
Jcc, LOOP and CALL instructions), but also other operations that cause a change in
the instruction pointer (like external interrupts, traps and faults).
18.5 LAST BRANCH, INTERRUPT, AND EXCEPTION
RECORDING (INTEL
®
CORE
2 DUO AND INTEL
®
ATOM
PROCESSOR FAMILY)
The Intel Core 2 Duo processor family and Intel Xeon processors based on Intel Core
microarchitecture or enhanced Intel Core microarchitecture provide last branch
interrupt and exception recording. The facilities described in this section also apply to
Intel Atom processor family. These capabilities are similar to those found in Pentium
4 processors, including support for the following facilities:
Debug Trace and Branch Recording Control — The IA32_DEBUGCTL MSR
provide bit fields for software to configure mechanisms related to debug trace,
branch recording, branch trace store, and performance counter operations. See
Section 18.5.1.