Debugging Tools for Windows

WdbgExts Symbols

This topic provides a brief overview of how symbols can be manipulated using the WdbgExts API. For an overview of using symbols in the debugger engine, see Symbols in the Debugger Engine Overview section of this documentation.

To evaluate a MASM or C++ expression, use the functions GetExpression or GetExpressionEx.

To read the value of a member in a structure, use the GetFieldData function or, if, the member contains a primitive value, GetFieldValue can be used. To determine the size of an instance of a symbol in the target's memory, use the GetTypeSize function.

To locate the offset of a member in a structure, use the GetFieldOffset function.

To read multiple members in a structure, first use the InitTypeRead function to initialize the structure. Then, you can use the ReadField function to read the members with size less than or equal to 8 bytes one at a time. For structure addresses in physical memory, use the InitTypeReadPhysical function instead of InitTypeRead.

There are two functions that you can use for iterating over linked lists. For doubly-linked lists that use the LIST_ENTRY32 or LIST_ENTRY64 structures, the function ReadListEntry can be used to find the next and previous entries. The function ListType will iterate over all the entries in a linked list and call a callback function for each entry.

To locate a symbol near a specified address in the target's memory, use the GetSymbol function.

To delete all the symbol information from the debugger engine's cache, use the ReloadSymbols function. To read or change the symbol path, which is used to search for symbol files, use the GetSetSympath function.

Almost all symbol operations provided by the debugger engine can be executed using the Ioctl operation IG_DUMP_SYMBOL_INFO. However, while being a very flexible function, it is advanced and we recommend that you use the above simpler functions where applicable.

Additional Information

For a more powerful symbols API, see Using Symbols in the Using the Debugger Engine API section of this documentation.

Build machine: CAPEBUILD