Extension Commands for Decoding Intel® Processor Trace

After code execution is traced, the extension provides the !decode command to download the trace, decode it, and display it. The !decode /info command displays the decoded amount of instructions. To display the reconstructed execution flow and navigate it, you can invoke !decode with no, one, or two range specifiers. If you do not provide the /number range specifier, the entire decoded trace is displayed. With two numbers, only the instructions in that decode range are displayed; for example, !decode 15 23 displays decoded instructions 15 through 23. If you specify only one number, the first or last number of decode lines are printed, depending on whether the number is positive or negative. For example, !decode 5 displays the first five lines, and !decode -12 displays the last twelve lines.

In general, the !decode command displays the disassembly of all the decoded instructions. If symbols are available, addresses are displayed with symbol decoration. If sources are available and you want the trace decode to be annotated with source lines that were executed, you can set the /src option. If you only want source lines to be displayed, the /srconly option suppresses the display of instruction disassembly lines.

When source line annotation is requested, the beginning of the source line shows the source location as [<source file name>:<line number>]; for example, [mysourcefile.c:519]. If debugger markup language (DML) is supported and enabled, these source locations are displayed as links – clicking such a link opens the source file and scrolls to the respective line.

!decode [/info] [/src] [/srconly] [<n>] [<start> <end>]
 /info - Get decode information
 /src - Interleave source lines (if available)
 /srconly - Show only source lines (if available)
 <n> - Number of lines to display;
       if positive print first n lines,
       if negative print last n lines
       (cannot be used together with <start> and <end>)
 <start> - Start of line number range (use together with <end>)
 <end> - End of line number range (use together with <start>)
For more complete information about compiler optimizations, see our Optimization Notice.