IDebugSymbols2::GetOffsetByName 方法 (dbgeng.h)
GetOffsetByName 方法返回由名称标识的符号的位置。
语法
HRESULT GetOffsetByName(
[in] PCSTR Symbol,
[out] PULONG64 Offset
);
参数
[in] Symbol
指定要查找的符号的名称。 该名称可由模块名称 (限定,例如 mymodule!main) 。
[out] Offset
接收目标内存地址空间中符号内存分配的基数的位置。
返回值
此方法也可能返回其他错误值。 有关更多详细信息 ,请参阅返回值 。
返回代码 | 说明 |
---|---|
|
方法成功。 |
|
方法成功。 但是,名称 符号 不是唯一的,并且找到了具有该名称的多个符号。 其中一个符号是任意选择并返回的。 |
|
找不到具有指定名称的符号。 |
注解
如果名称 Symbol 不唯一,并且 GetOffsetByName 找到具有该名称的多个符号,则会任意解决歧义。 在这种情况下,将返回值S_FALSE。 StartSymbolMatch 可用于启动搜索以确定哪个是所需结果。
GetNameByOffset 不支持模式匹配 (例如通配符) 。 若要使用模式匹配查找符号,请使用 StartSymbolMatch。
如果符号的模块名称已知,最好是使用模块名称限定符号名称。 否则,引擎将搜索所有模块的符号,直到找到匹配项;如果它必须加载大量模块的符号文件,则这可能需要很长时间。 如果符号名称使用模块名称进行限定,则引擎仅搜索该模块的符号。
有关符号和符号名称的详细信息,请参阅 符号。
要求
要求 | 值 |
---|---|
目标平台 | 桌面 |
标头 | dbgeng.h (包括 Dbgeng.h) |