微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PDB文件不加载

我们的应用程序以嵌套目录中的DLL的forms存在一些附加组件。 我们在后台运行一个DbgView的实例,通过它获取我们的日志。 问题是我们在另外一台计算机上运行testing, 这会导致PE头中的Debug Directory条目(通过Dumpbin工具提取)非常无效。

我们没有像这样的符号服务器。 然而,所有的PDB文件都放在debugging版本中的二进制文件旁边,并使用正确的名字,所以我们希望这些文件没有问题。

附加组件通过LoadLibrary Windows函数加载,然后使用SymloadModule64函数加载符号表。 根据返回值是正确的,但是当我们检查使用SymGetModuleInfo64实际加载的PDB时,它实际上什么也没有显示。 这也从原来的问题中可以看出来,这个问题导致我们潜心钻研我们的应用程序的这一部分,即上述debugging日志中的调用堆栈,更确切地说,它们涉及附加组件的部分被搞砸了。

尝试了各种版本的function,并检查了DbgHelp库的版本也无济于事。

OpenERP 7标准插件添加生成错误“找不到处理程序”

我遇到了将wmic的输出附加到文本文件的问题

为什么不是我的bash数组附加工作?

Windows(x86)程序集将空终止符附加到input的string

输出附加到文件时出现奇怪的错误

从VS附加表明,VS确实可以findPDB,而我们的符号加载机制和输出窗口中的日志仍然显示有问题的行为。 所有的VS都可以修复的是混乱的调用堆栈。

DbgHelp的符号加载使用应用程序的根目录作为“SymSearchPath”进行初始化,并启用了DEFERRED_LOAD。 后者我们需要删除,前者被设置为包含附件的目录。 一个不同的解决scheme是将PDB文件移动到这个根目录。

根据MSDN SymInitialize的参考, “SymSearchPath”被recursion地searchPDB文件,但实际上不是。 另一件事是,每次我浏览网页的订单,如何findPDB文件方法,它读取作为第一或第二行,二进制文件加载目录是search的PDB文件,但作为我上面解释过,这也不是这样发生的。

总而言之,问题似乎解决了,这里有很多令人困惑的事情。

所以..

1.如果有人知道加载PDB文件的真实方式,那将是非常有启发性的。 ..?

2. DbgHelp从根本上是越野车吗?

3.为什么“SymSearchPath”在MSDN上如此表述时不能被recursionsearch?

另外,如果你有任何其他的补充,这也是受欢迎的。

感谢您阅读这么长的post。

追加到并发环境中的文件末尾

在linux中追加date到文件

哪个是在WINDOWS中保存程序configuration文件的最佳位置?

追加在同一行bash

Bash脚本:在文件的特定行的最后一个字符处追加文本

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐