本主题简要概述了如何使用 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.
有两个函数可用于循环访问链接列表。 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. 但是,虽然是一个非常灵活的函数,但它是高级的,我们建议你使用上述更简单的函数(如果适用)。
其他信息
For a more powerful symbols API, see Using Symbols in the Using the Debugger Engine API section of this documentation.