IDebugAdvanced3::GetSymbolInformation method (dbgeng.h)

The GetSymbolInformation method returns specified information about a symbol.

Syntax

HRESULT GetSymbolInformation(
  [in]            ULONG   Which,
  [in]            ULONG64 Arg64,
  [in]            ULONG   Arg32,
  [out, optional] PVOID   Buffer,
  [in]            ULONG   BufferSize,
  [out, optional] PULONG  InfoSize,
  [out, optional] PSTR    StringBuffer,
  [in]            ULONG   StringBufferSize,
  [out, optional] PULONG  StringSize
);

Parameters

[in] Which

Specifies the piece of information to return. Which can take one of the values in the follow table.

Value Information returned
DEBUG_SYMINFO_BREAKPOINT_SOURCE_LINE Returns the source code file name and line number for a specified breakpoint. The line number is returned to Buffer as a ULONG. The file name is returned to StringBuffer.
DEBUG_SYMINFO_IMAGEHLP_MODULEW64 Returns an IMAGEHLP_MODULEW64 structure that describes a specified module. For details about this structure, see the IMAGEHLP_MODULE64 topic in the Debug Help Library documentation (dbghelp.chm).

No string is returned and StringBuffer, StringBufferSize, and StringSize must all be set to zero.

DEBUG_SYMINFO_GET_SYMBOL_NAME_BY_OFFSET_AND_TAG_WIDE Returns the Unicode name of the symbol specified by location in memory and PDB tag type. The name is returned to Buffer. StringBuffer is not used.
DEBUG_SYMINFO_GET_MODULE_SYMBOL_NAMES_AND_OFFSETS Returns a list of symbol names and offsets for the symbols in the specified module with the specified PDB tag type. The offsets are returned as an array of ULONG values to Buffer. The names are returned in the same order as the offsets to StringBuffer. Some names might contain embedded zeros because annotations can have multi-part names; hence, each name is terminated with two null characters.

[in] Arg64

Specifies a 64-bit argument. This parameter has the following interpretations depending on the value of Which:

DEBUG_SYMINFO_BREAKPOINT_SOURCE_LINE

Ignored.

DEBUG_SYMINFO_IMAGEHLP_MODULEW64

The base address of the module whose description is being requested.

DEBUG_SYMINFO_GET_SYMBOL_NAME_BY_OFFSET_AND_TAG_WIDE

Specifies the address in the target's memory of the symbol whose name is being requested.

DEBUG_SYMINFO_GET_MODULE_SYMBOL_NAMES_AND_OFFSETS

Specifies the module whose symbols are requested. Arg64 is a location within the memory allocation of the module.

[in] Arg32

Specifies a 32-bit argument. This parameter has the following interpretations depending on the value of Which:

DEBUG_SYMINFO_BREAKPOINT_SOURCE_LINE

The engine breakpoint ID of the desired breakpoint.

DEBUG_SYMINFO_IMAGEHLP_MODULEW64

Set to zero.

DEBUG_SYMINFO_GET_SYMBOL_NAME_BY_OFFSET_AND_TAG_WIDE

The PDB classification of the symbol. Arg32 must be one of the values in the SymTagEnum enumeration defined in Dbghelp.h. For more information, see PDB documentation.

DEBUG_SYMINFO_GET_MODULE_SYMBOL_NAMES_AND_OFFSETS

The PDB classification of the symbol. Arg32 must be one of the values in the SymTagEnum enumeration defined in Dbghelp.h. For more information, see PDB documentation.

[out, optional] Buffer

Receives the requested symbol information. The type of the data returned depends on the value of Which. If Buffer is NULL, this information is not returned.

[in] BufferSize

Specifies the size, in bytes, of the buffer Buffer.

[out, optional] InfoSize

If this method returns S_OK, InfoSize receives the size, in bytes, of the symbol information returned to Buffer. If this method returns S_FALSE, the supplied buffer is not big enough, and InfoSize receives the required buffer size. If InfoSize is NULL, this information is not returned.

[out, optional] StringBuffer

Receives the requested string. The interpretation of this string depends on the value of Which. If StringBuffer is NULL, this information is not returned.

[in] StringBufferSize

Specifies the size, in characters, of the string buffer StringBuffer.

[out, optional] StringSize

Receives the size, in characters, of the string returned to StringBuffer. If StringSize is NULL, this information is not returned.

Return value

This method may also return error values. See Return Values for more details.

Return code Description
S_OK
The method was successful.
S_FALSE
The method was successful. However, the information would not fit in the buffer Buffer or the string would not fit in the buffer StringBuffer, so the information or name was truncated.

Requirements

Requirement Value
Target Platform Desktop
Header dbgeng.h (include Dbgeng.h)