首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >微软Dia2Lib 0x806D0005的HRESULT

微软Dia2Lib 0x806D0005的HRESULT
EN

Stack Overflow用户
提问于 2010-05-20 01:13:24
回答 1查看 2.9K关注 0票数 3

我正在尝试将PDB文件读入C#应用程序。当我使用已知存在的文件调用loadDataFromPdbloadAndValidateDataFromPdb时,会得到0x806D0005的HRESULT。不幸的是,我不知道那是什么意思。我已经列出了可能的结果(这里)(http://msdn.microsoft.com/en-us/library/2008hf0e(v=VS.80%29.aspx%29),但恐怕我无法确定问题的答案。

有人知道我做错了什么吗?或者至少有一种方法来检查它对应的是什么?

Exception :System.Runtime.InteropServices.COMException ( 0x806D0005 ):来自HRESULT的异常:0x806D0005 at Dia2Lib.DiaSourceClass.loadDataFromPdb(字符串pdbPath)

代码示例:

代码语言:javascript
运行
复制
public static void LoadSymbolsForModule(uint baseAddress, uint size, uint timeStamp, DM_PDB_SIGNATURE signature)
{
    IDiaDataSource m_source = new DiaSourceClass();
    //m_source.loadAndValidateDataFromPdb(signature.path, ref signature.guid, 0, signature.age);
    m_source.loadDataFromPdb(signature.path);
    IDiaSession m_session;
    m_source.openSession(out m_session);
    m_session.loadAddress = baseAddress;
    modules.Add(new Module(baseAddress, size, m_session));
}

伙计们,提前谢谢。这个问题已经折磨了我一整天。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-05-20 01:59:18

搜索E_PDB_NOT_FOUND const发现了dia2.h的谷歌代码上的源代码,这证实了0x806D0005是E_PDB_NOT_FOUND。

代码语言:javascript
运行
复制
E_PDB_OK            = ( HRESULT  )(( ( ( ( unsigned long  )1 << 31 )  | ( ( unsigned long  )( LONG  )0x6d << 16 )  )  | ( unsigned long  )1 ) ),
E_PDB_USAGE         = ( E_PDB_OK + 1 ) ,
E_PDB_OUT_OF_MEMORY = ( E_PDB_USAGE + 1 ) ,
E_PDB_FILE_SYSTEM   = ( E_PDB_OUT_OF_MEMORY + 1 ) ,
E_PDB_NOT_FOUND     = ( E_PDB_FILE_SYSTEM + 1 ) ,

注意,您使用的函数的签名使用了一个LPCOLESTR,这是一个unicode字符串。确保在接口声明中正确地封送字符串,即:

代码语言:javascript
运行
复制
Int32 loadDataFromPdb ( [MarshalAs(UnmanagedType.LPWStr)] string pdbPath );

msdn文档还意味着,如果文件存在,如果它“确定该文件具有无效的格式”,该错误将被返回。我怀疑这是不是实际的问题,但是如果您正在以某种非标准的方式生成pdb文件,那么问题可能是pdb文件本身。

搜索结果,E_PDB_NOT_FOUND找到了一个遇到同一问题的人。他们的问题似乎是由于资源消耗(太多的pdbs被加载或没有被正确释放)。其他对该结果和错误名称的搜索结果似乎支持在加载pdb的其他失败(例如pdb太大)时抛出此错误的可能性。

希望这能帮点忙。:)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2870460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档