Vol. 3 16-15
DEBUGGING, PROFILING BRANCHES AND TIME-STAMP COUNTER
in the last branch record (LBR) stack. For more information, see the Section
16.5.1, “LBR Stack”.
• BTF (single-step on branches) flag (bit 1) — When set, the processor treats
the TF flag in the EFLAGS register as a “single-step on branches” flag rather than
a “single-step on instructions” flag. This mechanism allows single-stepping the
processor on taken branches, interrupts, and exceptions. See Section 16.4.3,
“Single-Stepping on Branches, Exceptions, and Interrupts,” for more information
about the BTF flag.
• TR (trace message enable) flag (bit 6) — When set, branch trace messages
are enabled. When the processor detects a taken branch, interrupt, or exception;
it sends the branch record out on the system bus as a branch trace message
(BTM). See Section 16.4.4, “Branch Trace Messages,” for more information about
the TR flag.
• BTS (branch trace store) flag (bit 7) — When set, the flag enables BTS
facilities to log BTMs to a memory-resident BTS buffer that is part of the DS save
area. See Section 16.4.9, “BTS and DS Save Area.”
• BTINT (branch trace interrupt) flag (bit 8) — When set, the BTS facilities
generate an interrupt when the BTS buffer is full. When clear, BTMs are logged to
the BTS buffer in a circular fashion. See Section 16.4.5, “Branch Trace Store (BTS),”
for a description of this mechanism.
• BTS_OFF_OS (branch trace off in privileged code) flag (bit 9) — When set,
BTS or BTM is skipped if CPL is 0. See Section 16.7.2.
• BTS_OFF_USR (branch trace off in user code) flag (bit 10) — When set,
BTS or BTM is skipped if CPL is greater than 0. See Section 16.7.2.
Figure 16-3. IA32_DEBUGCTL MSR for Processors based
on Intel Core
microarchitecture
31
TR — Trace messages enable
BTINT — Branch trace interrupt
BTF — Single-step on branches
LBR — Last branch/interrupt/exception
Reserved
87654321 0
BTS — Branch trace store
Reserved
910
BTS_OFF_OS — BTS off in OS
BTS_OFF_USR — BTS off in user code
FREEZE_LBRS_ON_PMI
FREEZE_PERFMON_ON_PMI
11
12
14
FREEZE_WHILE_SMM_EN