[PATCH 5/5] winedump: Add support for ThreadInfoListStream stream.
Nikolay Sivov
nsivov at codeweavers.com
Tue May 17 14:20:38 CDT 2022
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
include/minidumpapiset.h | 21 +++++++++++++++++++++
tools/winedump/minidump.c | 31 +++++++++++++++++++++++++++++++
2 files changed, 52 insertions(+)
diff --git a/include/minidumpapiset.h b/include/minidumpapiset.h
index 997a04cc865..6811892e189 100644
--- a/include/minidumpapiset.h
+++ b/include/minidumpapiset.h
@@ -405,6 +405,27 @@ typedef struct _MINIDUMP_HANDLE_DESCRIPTOR_2
ULONG32 Reserved0;
} MINIDUMP_HANDLE_DESCRIPTOR_2, *PMINIDUMP_HANDLE_DESCRIPTOR_2;
+typedef struct _MINIDUMP_THREAD_INFO
+{
+ ULONG32 ThreadId;
+ ULONG32 DumpFlags;
+ ULONG32 DumpError;
+ ULONG32 ExitStatus;
+ ULONG64 CreateTime;
+ ULONG64 ExitTime;
+ ULONG64 KernelTime;
+ ULONG64 UserTime;
+ ULONG64 StartAddress;
+ ULONG64 Affinity;
+} MINIDUMP_THREAD_INFO, *PMINIDUMP_THREAD_INFO;
+
+typedef struct _MINIDUMP_THREAD_INFO_LIST
+{
+ ULONG SizeOfHeader;
+ ULONG SizeOfEntry;
+ ULONG NumberOfEntries;
+} MINIDUMP_THREAD_INFO_LIST, *PMINIDUMP_THREAD_INFO_LIST;
+
typedef enum _MINIDUMP_STREAM_TYPE
{
UnusedStream = 0,
diff --git a/tools/winedump/minidump.c b/tools/winedump/minidump.c
index f8bd03ca0c5..734c754e6be 100644
--- a/tools/winedump/minidump.c
+++ b/tools/winedump/minidump.c
@@ -476,6 +476,37 @@ void mdmp_dump(void)
}
}
break;
+ case ThreadInfoListStream:
+ {
+ const MINIDUMP_THREAD_INFO_LIST *til = stream;
+ const BYTE *desc;
+
+ printf("Thread Info List:\n");
+ printf(" SizeOfHeader: %u\n", (UINT)til->SizeOfHeader);
+ printf(" SizeOfEntry: %u\n", (UINT)til->SizeOfEntry);
+ printf(" NumberOfEntries: %u\n", (UINT)til->NumberOfEntries);
+
+ desc = (BYTE *)til + sizeof(*til);
+ for (i = 0; i < til->NumberOfEntries; ++i)
+ {
+ const MINIDUMP_THREAD_INFO *ti = (void *)desc;
+
+ printf(" Thread [%u]:\n", i);
+ printf(" ThreadId: %u\n", ti->ThreadId);
+ printf(" DumpFlags: %#x\n", ti->DumpFlags);
+ printf(" DumpError: %u\n", ti->DumpError);
+ printf(" ExitStatus: %u\n", ti->ExitStatus);
+ print_longlong(" CreateTime", ti->CreateTime);
+ print_longlong(" ExitTime", ti->ExitTime);
+ print_longlong(" KernelTime", ti->KernelTime);
+ print_longlong(" UserTime", ti->UserTime);
+ print_longlong(" StartAddress", ti->StartAddress);
+ print_longlong(" Affinity", ti->Affinity);
+
+ desc += til->SizeOfEntry;
+ }
+ }
+ break;
default:
printf("NIY %d\n", dir->StreamType);
--
2.35.1
More information about the wine-devel
mailing list