1
0
mirror of https://github.com/wine-mirror/wine synced 2024-06-29 06:14:34 +00:00

winedump: Dump correct handle information for minidump.

Signed-off-by: Eric Pouech <epouech@codeweavers.com>
This commit is contained in:
Eric Pouech 2024-04-14 09:44:15 +02:00 committed by Alexandre Julliard
parent 5ef4bb1d48
commit 0327b00d10
2 changed files with 26 additions and 1 deletions

View File

@ -392,6 +392,13 @@ typedef struct _MINIDUMP_HANDLE_DESCRIPTOR
ULONG32 PointerCount;
} MINIDUMP_HANDLE_DESCRIPTOR, *PMINIDUMP_HANDLE_DESCRIPTOR;
typedef struct _MINIDUMP_HANDLE_OBJECT_INFORMATION
{
RVA NextInfoRva;
ULONG32 InfoType;
ULONG32 SizeOfInfo;
} MINIDUMP_HANDLE_OBJECT_INFORMATION;
typedef struct _MINIDUMP_HANDLE_DESCRIPTOR_2
{
ULONG64 Handle;

View File

@ -499,8 +499,26 @@ void mdmp_dump(void)
if (mhd->SizeOfDescriptor >= sizeof(MINIDUMP_HANDLE_DESCRIPTOR_2))
{
printf(" ObjectInfo: %s\n", get_mdmp_str(hd->ObjectInfoRva));
MINIDUMP_HANDLE_OBJECT_INFORMATION *obj_info;
unsigned link_count = 0;
printf(" ObjectInfo: %#x\n", (UINT)hd->ObjectInfoRva);
printf(" Reserved0: %#x\n", hd->Reserved0);
if (hd->ObjectInfoRva)
{
for (obj_info = (void*)PRD(hd->ObjectInfoRva, sizeof(*obj_info));
obj_info;
obj_info = obj_info->NextInfoRva ? (void*)PRD(obj_info->NextInfoRva, sizeof(*obj_info)) : NULL)
{
printf(" Information[%u]\n", link_count++);
printf(" NextInfoRva: %#x\n", (UINT)obj_info->NextInfoRva);
printf(" InfoType: %u\n", obj_info->InfoType);
printf(" SizeOfInfo: %u\n", obj_info->SizeOfInfo);
if (globals_dump_sect("content"))
dump_data((const BYTE*)(obj_info + 1), obj_info->SizeOfInfo, " ");
}
}
}
ptr += mhd->SizeOfDescriptor;