共用方式為


IDebugAdvanced3::GetSymbolInformation 方法 (dbgeng.h)

GetSymbolInformation 方法會傳回符號的指定資訊。

語法

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
);

參數

[in] Which

指定要傳回的資訊片段。 可接受下表中的其中一個值。

傳回的資訊
DEBUG_SYMINFO_BREAKPOINT_SOURCE_LINE 傳回指定斷點的原始程式碼檔名和行號。 行號會以 ULONG 的形式傳回至 Buffer 。 檔名會傳回 給 StringBuffer
DEBUG_SYMINFO_IMAGEHLP_MODULEW64 傳回描述指定模組的IMAGEHLP_MODULEW64結構。 如需此結構的詳細資訊,請參閱偵錯說明連結庫檔中的IMAGEHLP_MODULE64主題, (dbghelp.chm) 。

不會傳回任何字串,而且 StringBufferSizeStringSize 都必須全部設定為零。

DEBUG_SYMINFO_GET_SYMBOL_NAME_BY_OFFSET_AND_TAG_WIDE 傳回記憶體和 PDB 標籤類型中位置所指定的符號 Unicode 名稱。 此名稱會傳回至 Buffer。 未使用 StringBuffer
DEBUG_SYMINFO_GET_MODULE_SYMBOL_NAMES_AND_OFFSETS 傳回指定模組中具有指定 PDB 標籤型態的符號名稱和位移清單。 位移會以ULONG值的數位的形式傳回給 Buffer。 名稱會以與 StringBuffer 位移相同的順序傳回。 某些名稱可能包含內嵌零,因為批注可以有多個部分名稱;因此,每個名稱都會以兩個 Null 字元終止。

[in] Arg64

指定64位自變數。 此參數具有下列解譯,視 值而定:

DEBUG_SYMINFO_BREAKPOINT_SOURCE_LINE

忽略。

DEBUG_SYMINFO_IMAGEHLP_MODULEW64

要求描述之模組的基位址。

DEBUG_SYMINFO_GET_SYMBOL_NAME_BY_OFFSET_AND_TAG_WIDE

指定要求名稱之符號之目標記憶體中的位址。

DEBUG_SYMINFO_GET_MODULE_SYMBOL_NAMES_AND_OFFSETS

指定要求符號的模組。 Arg64 是模組記憶體配置內的位置。

[in] Arg32

指定32位自變數。 此參數具有下列解譯,視 值而定:

DEBUG_SYMINFO_BREAKPOINT_SOURCE_LINE

所需斷點的引擎斷點標識碼。

DEBUG_SYMINFO_IMAGEHLP_MODULEW64

設定為零。

DEBUG_SYMINFO_GET_SYMBOL_NAME_BY_OFFSET_AND_TAG_WIDE

符號的 PDB 分類。 Arg32 必須是 Dbghelp.h 中所定義 SymTagEnum 列舉中的其中一個值。 如需詳細資訊,請參閱 PDB 檔。

DEBUG_SYMINFO_GET_MODULE_SYMBOL_NAMES_AND_OFFSETS

符號的 PDB 分類。 Arg32 必須是 Dbghelp.h 中所定義 SymTagEnum 列舉中的其中一個值。 如需詳細資訊,請參閱 PDB 檔。

[out, optional] Buffer

接收要求的符號資訊。 傳回的數據型別取決於 [哪一個] 的值。 如果 BufferNULL,則不會傳回這項資訊。

[in] BufferSize

指定緩衝區 緩衝區的大小,以位元組為單位。

[out, optional] InfoSize

如果這個方法傳回S_OK,InfoSize 會接收傳回給 Buffer 之符號資訊的大小,以位元組為單位。 如果此方法傳回 S_FALSE,則提供的緩衝區不夠大, InfoSize 會收到所需的緩衝區大小。 如果 InfoSizeNULL,則不會傳回此資訊。

[out, optional] StringBuffer

接收要求的字串。 此字串的解譯取決於 值。 如果 StringBufferNULL,則不會傳回這項資訊。

[in] StringBufferSize

指定字串緩衝區 StringBuffer 的大小,以字元為單位。

[out, optional] StringSize

接收傳回給 StringBuffer 之字串的大小,以字元為單位。 如果 StringSizeNULL,則不會傳回這項資訊。

傳回值

這個方法也可能傳回錯誤值。 如需詳細資訊,請參閱 傳回值

傳回碼 描述
S_OK
此方法成功。
S_FALSE
此方法成功。 不過,信息無法放入緩衝區 緩衝區 ,或字串無法放入緩衝區 StringBuffer 中,因此會截斷資訊或名稱。

規格需求

需求
目標平台 桌面
標頭 dbgeng.h (包含 Dbgeng.h)