<trvalign=top><td><b>frame.index</b></td><td>The frame index (0, 1, 2, 3...)</td></tr>
<trvalign=top><td><b>frame.pc</b></td><td>The generic frame register for the program counter.</td></tr>
<trvalign=top><td><b>frame.sp</b></td><td>The generic frame register for the stack pointer.</td></tr>
<trvalign=top><td><b>frame.fp</b></td><td>The generic frame register for the frame pointer.</td></tr>
<trvalign=top><td><b>frame.flags</b></td><td>The generic frame register for the flags register.</td></tr>
<trvalign=top><td><b>frame.reg.NAME</b></td><td>Access to any platform specific register by name (replace <b>NAME</b> with the name of the desired register).</td></tr>
<trvalign=top><td><b>function.name</b></td><td>The name of the current function or symbol.</td></tr>
<trvalign=top><td><b>function.name-with-args</b></td><td>The name of the current function with arguments and values or the symbol name.</td></tr>
<trvalign=top><td><b>function.name-without-args</b></td><td>The name of the current function without arguments and values (used to include a function name in-line in the <tt>disassembly-format</tt>)</td></tr>
<trvalign=top><td><b>function.addr-offset</b></td><td>The offset in bytes of the current function, formatted as " + dddd"</td></tr>
<trvalign=top><td><b>function.concrete-only-addr-offset-no-padding</b></td><td>Similar to <b>function.addr-offset</b> except that there are no spaces in the output (e.g. "+dddd") and the offset is computed from the nearest concrete function -- inlined functions are not included</td></tr>
<trvalign=top><td><b>function.changed</b></td><td>Will evaluate to true when the line being formatted is a different symbol context from the previous line (may be used in <tt>disassembly-format</tt> to print the new function name on a line by itself at the start of a new function). Inlined functions are not considered for this variable</td></tr>
<trvalign=top><td><b>function.initial-function</b></td><td>Will evaluate to true if this is the start of the first function, as opposed to a change of functions (may be used in <tt>disassembly-format</tt> to print the function name for the first function being disassembled)</td></tr>
<trvalign=top><td><b>line.file.basename</b></td><td>The line table entry basename to the file for the current line entry in the current frame.</td></tr>
<trvalign=top><td><b>line.file.fullpath</b></td><td>The line table entry fullpath to the file for the current line entry in the current frame.</td></tr>
<trvalign=top><td><b>line.number</b></td><td>The line table entry line number for the current line entry in the current frame.</td></tr>
<trvalign=top><td><b>line.start-addr</b></td><td>The line table entry start address for the current line entry in the current frame.</td></tr>
<trvalign=top><td><b>line.end-addr</b></td><td>The line table entry end address for the current line entry in the current frame.</td></tr>
<trvalign=top><td><b>module.file.basename</b></td><td>The basename of the current module (shared library or executable)</td></tr>
<trvalign=top><td><b>module.file.fullpath</b></td><td>The basename of the current module (shared library or executable)</td></tr>
<trvalign=top><td><b>process.file.basename</b></td><td>The basename of the file for the process</td></tr>
<trvalign=top><td><b>process.file.fullpath</b></td><td>The fullname of the file for the process</td></tr>
<trvalign=top><td><b>thread.completed-expression</b></td><td>The expression result for a thread that just finished an interrupted expression evaluation.</td></tr>
<trvalign=top><td><b>current-pc-arrow</b></td><td>Prints either '<tt>-> </tt>' or '<tt></tt>' if the current pc value is matched (used in <tt>disassembly-format</tt>)</td></tr>
<trvalign=top><td><b>addr-file-or-load</b></td><td>Formats an address either as a load address, or if process has not yet been launched, as a load address (used in <tt>disassembly-format</tt>)</td></tr>
<p>Looking at the default format for the thread, and underlining
the frame information:
<p><code>'thread #${thread.index}: tid = ${thread.id}<u><b>{</b>, ${frame.pc}<b>}{</b> ${module.file.basename}`${function.name}{${function.pc-offset}}<b>}</b></u>{, stop reason = ${thread.stop-reason}}{, name = ${thread.name}}{, queue = ${thread.queue}}\n'
</code></p>
<p>We can see that all frame information is contained in scopes so
that when the thread information is displayed in a context where
we only want to show thread information, we can do so.
<p>For both thread and frame formats, you can use ${target.script:<i>python_func</i>}, ${process.script:<i>python_func</i>} and ${thread.script:<i>python_func</i>}
(and of course ${frame.script:<i>python_func</i>} for frame formats)<br/>
In all cases, the signature of <i>python_func</i> is expected to be:<br/>