Expressions in Wine Debugger are mostly written in a C
form. However, there are a few discrepancies:
Identifiers can take a '!' in their names. This allow
mainly to access symbols from different DLLs like
USER32!CreateWindowExA.
In cast operation, when specifying a structure or an
union, you must use the struct or
union keyword (even if your program uses a typedef).
When specifying an identifier by its name, if several
symbols with the same name exist, the debugger will prompt
for the symbol you want to use. Pick up the one you want
from its number.
In lots of cases, you can also use regular expressions for
looking for a symbol.
winedbg defines its own set of
variables. The configuration variables from above are part
of them. Some others include:
$ThreadId
ID of the W-thread currently
examined by the debugger
$ProcessId
ID of the W-thread currently
examined by the debugger
<registers>
All CPU registers are also available, using $ as a
prefix. You can use info regs to
get a list of avaible CPU registers
The $ThreadId and
$ProcessId variables can be handy to set
conditional breakpoints on a given thread or process.