SymGetSymbolFileW 函数 (dbghelp.h)

在指定的符号路径中找到符号文件。

语法

BOOL IMAGEAPI SymGetSymbolFileW(
  [in, optional] HANDLE hProcess,
  [in, optional] PCWSTR SymPath,
  [in]           PCWSTR ImageFile,
  [in]           DWORD  Type,
  [out]          PWSTR  SymbolFile,
  [in]           size_t cSymbolFile,
  [out]          PWSTR  DbgFile,
  [in]           size_t cDbgFile
);

参数

[in, optional] hProcess

最初传递给 SymInitialize 函数的进程句柄。

如果此句柄为 0,则 SymPath 不能 NULL。 使用此选项可以加载符号文件,而无需调用 SymInitializeSymCleanup

[in, optional] SymPath

符号路径。 如果此参数 NULL 或空字符串,则该函数使用 SymInitializeSymSetSearchPath 函数设置的符号路径。

[in] ImageFile

映像文件的名称。

[in] Type

符号文件的类型。 此参数可以是下列值之一。

价值 意义
sfImage
0
.exe 或 .dll 文件。
sfDbg
1
.dbg 文件。
sfPdb
2
.pdb 文件。
sfMpd
3
保留。

[out] SymbolFile

指向接收符号文件名称的以 null 结尾的字符串的指针。

[in] cSymbolFile

SymbolFile 缓冲区的大小(以字符为单位)。

[out] DbgFile

指向接收符号文件的完全限定路径的缓冲区的指针。 此缓冲区必须至少MAX_PATH个字符。

[in] cDbgFile

DbgFile 缓冲区的大小(以字符为单位)。

返回值

如果服务器找到有效的符号文件,则返回 true ;否则,它将返回 FALSEGetLastError 返回一个值,该值指示未返回符号文件的原因。

言论

所有 DbgHelp 函数(如此函数)都是单线程的。 因此,从多个线程调用此函数可能会导致意外行为或内存损坏。 若要避免这种情况,必须将来自多个线程的所有并发调用同步到此函数。

若要调用此函数的 Unicode 版本,请定义DBGHELP_TRANSLATE_TCHAR。

注意

dbghelp.h 标头将 SymGetSymbolFile 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
目标平台 窗户
标头 dbghelp.h
Dbghelp.lib
DLL Dbghelp.dll
可再发行组件 DbgHelp.dll 6.3 或更高版本

另请参阅

DbgHelp 函数

SymInitialize