[PATCH 0/3] MR5767: Dump some more minidump information.
From: Eric Pouech <epouech(a)codeweavers.com> Signed-off-by: Eric Pouech <epouech(a)codeweavers.com> --- include/minidumpapiset.h | 7 +++++++ tools/winedump/minidump.c | 20 +++++++++++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/include/minidumpapiset.h b/include/minidumpapiset.h index 2d13c6f6a67..c3cd43310ae 100644 --- a/include/minidumpapiset.h +++ b/include/minidumpapiset.h @@ -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; diff --git a/tools/winedump/minidump.c b/tools/winedump/minidump.c index 80900e3eb33..0a5ee15412b 100644 --- a/tools/winedump/minidump.c +++ b/tools/winedump/minidump.c @@ -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; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/5767
From: Eric Pouech <epouech(a)codeweavers.com> Signed-off-by: Eric Pouech <epouech(a)codeweavers.com> --- tools/winedump/minidump.c | 1 - 1 file changed, 1 deletion(-) diff --git a/tools/winedump/minidump.c b/tools/winedump/minidump.c index 0a5ee15412b..df7885bc86b 100644 --- a/tools/winedump/minidump.c +++ b/tools/winedump/minidump.c @@ -226,7 +226,6 @@ void mdmp_dump(void) for (i = 0; i < mml->NumberOfMemoryRanges; i++, mmd++) { printf(" Memory Range #%d:\n", i); - dump_mdmp_data(&mmd->Memory, " "); printf(" Range: %s +%#x\n", get_hexint64_str(mmd->StartOfMemoryRange), mmd->Memory.DataSize); if (globals_dump_sect("content")) dump_mdmp_data(&mmd->Memory, " "); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/5767
From: Eric Pouech <epouech(a)codeweavers.com> Signed-off-by: Eric Pouech <epouech(a)codeweavers.com> --- tools/winedump/minidump.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/tools/winedump/minidump.c b/tools/winedump/minidump.c index df7885bc86b..80057a21829 100644 --- a/tools/winedump/minidump.c +++ b/tools/winedump/minidump.c @@ -232,6 +232,25 @@ void mdmp_dump(void) } } break; + case Memory64ListStream: + if (globals_dump_sect("memory")) + { + const MINIDUMP_MEMORY64_LIST *mml = stream; + const MINIDUMP_MEMORY_DESCRIPTOR64 *mmd = mml->MemoryRanges; + ULONG64 i64, base_rva; + printf("Stream [%u]: Memory64 Ranges:\n", idx); + printf(" NumberOfMemoryRanges: %s\n", get_uint64_str(mml->NumberOfMemoryRanges)); + base_rva = mml->BaseRva; + for (i64 = 0; i64 < mml->NumberOfMemoryRanges; i64++, mmd++) + { + printf(" Memory Range #%s:\n", get_uint64_str(i64)); + printf(" Range: %s +%s\n", get_hexint64_str(mmd->StartOfMemoryRange), get_hexint64_str(mmd->DataSize)); + if (globals_dump_sect("content")) + dump_data(PRD(base_rva, mmd->DataSize), mmd->DataSize, " "); + base_rva += mmd->DataSize; + } + } + break; case SystemInfoStream: if (globals_dump_sect("info")) { -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/5767
participants (2)
-
Eric Pouech -
eric pouech (@epo)