首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用MiniDump获取处理数据(DbgHelp.h)

使用MiniDump获取处理数据(DbgHelp.h)
EN

Stack Overflow用户
提问于 2016-02-06 14:23:36
回答 1查看 460关注 0票数 3

我很难通过Minidump获得处理信息(DbgHelp.h)。

我正在从映射的文件流中获得一个MINIDUMP_HANDLE_DESCRIPTOR_2列表。然后,我将使用MINIDUMP_HANDLE_OBJECT_INFORMATION字段为每个描述符获取一个ObjectInfoRva

然而,我不明白这个MINIDUMP_HANDLE_OBJECT_INFORMATION结构给了我什么信息,我在web上找不到从MINIDUMP_HANDLE_OBJECT_INFORMATION中提取有意义信息的任何例子,而且文档也没有多大帮助。

如何使用MINIDUMP_HANDLE_OBJECT_INFORMATION结构数据获得人类可读的数据?我是说我需要怎么处理它?我总是在InfoType文件中得到0,意思是- MiniHandleObjectInformationNone

MINIDUMP_HANDLE_OBJECT_INFORMATION结构:

代码语言:javascript
复制
public struct MINIDUMP_HANDLE_OBJECT_INFORMATION
{
    public uint NextInfoRva;
    public MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE InfoType;
    public UInt32 SizeOfInfo;
}

我用MINIDUMP_HANDLE_OBJECT_INFORMATION struct做了一些实验

当我获得结构时,我能够从具有SizeOfInfo大小的RVA地址读取字符串。在这里,我可以在我得到的所有句柄描述符上使用“目录”作为字符串.

链接到doc:

https://msdn.microsoft.com/en-us/library/windows/desktop/ms680375(v=vs.85).aspx

(如有任何帮助,将不胜感激:)

我的进程(我正在尝试应用它)使用WaitForMultipleObjectsWaitForSingleObject Kernel32调用。

链接到我的实现:

https://github.com/Pavel-Durov/Multithreading-Debugging-Asignments/blob/master/Assignments/Assignments.Core/Handlers/MiniDumpHandler.cs

链接到WinDbg !handle命令输出,我在同一个转储文件:VQhynXdBAvXV29Q/edit?usp=sharing上执行该命令输出。

也许问题是我没有为我的MINIDUMP_HANDLE_OBJECT_INFORMATION_TYPE枚举设置一个有效值,是否有人熟悉这个枚举值声明的可靠源?我什么都没找到。

只是想说清楚.

在WinDbj中,我获得与MINIDUMP_HANDLE_DESCRIPTOR_2相同的信息,例如,如果WinDbg!WinDbg命令具有以下输出:

代码语言:javascript
复制
Handle 00000004
  Type                   Directory
Handle 00000008
  Type                   Directory
Handle 0000000c
  Type                   Event
Handle 00000010
  Type                   Event
Handle 00000014
  Type                   File
…

我可以从MINIDUMP_HANDLE_DESCRIPTOR_2 ObjectName和TypeName获得相同的数据,它们都是MINIDUMP_STRING类型的。

无法获取的信息是位于结构中的信息。它在!hanlde命令输出中不可见。

什么样的信息应该位于MINIDUMP_HANDLE_OBJECT_INFORMATION中?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-15 07:33:39

在几个小时之后--调试托管代码并将其与C++代码示例进行比较--我发现了MINIDUMP_HANDLE_OBJECT_INFORMATION结构读取的错误--我没有正确计算rva + baseMinidump地址。

现在,我能够获得句柄的附加信息:)

在这里可以找到Mu代码:https://github.com/Pavel-Durov/Multithreading-Debugging-Asignments/blob/master/Assignments/Assignments.Core/Handlers/MiniDumpHandler.cs

第144行,DealWithHandleInfo函数

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

https://stackoverflow.com/questions/35242105

复制
相关文章

相似问题

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