What does '@@' mean in windbg scripting

Viewed 104

In windbg scripting, a single '@' obtains the value as described here:

. If you want to obtain the pseudo-register value then use @ symbol, for example, @$t0.

However, I was unable to find an explanation for '@@'.

2 Answers

You can use @@ and specify the language using @@masm(...) or @@c++(...) (see MASM numbers and operators (MSDN)), which is likely a good choice if you read the rest.

Using @@ without any language specifier is a bit tricky, because it will use the opposite one than chosen to be the default. The default default language would be MASM, so @@ switches to C++ in that case. Except you have changed the default language to C++, in which case @@ would switch to MASM. Changing the default is possible via the -ee command line argument or the .expr command.

The @@ directive instructs windbg to parse the command differently. Instead of using the traditional MASM parsing syntax (i.e use the value) the @@ instructs windbg to use the C++ parsing syntax which is similar to dereferencing in C pointers.

Related