winedump: Add support for ThreadInfoListStream stream.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
0d89f67ea2
commit
d50f7b02a9
|
@ -405,6 +405,27 @@ typedef struct _MINIDUMP_HANDLE_DESCRIPTOR_2
|
||||||
ULONG32 Reserved0;
|
ULONG32 Reserved0;
|
||||||
} MINIDUMP_HANDLE_DESCRIPTOR_2, *PMINIDUMP_HANDLE_DESCRIPTOR_2;
|
} 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
|
typedef enum _MINIDUMP_STREAM_TYPE
|
||||||
{
|
{
|
||||||
UnusedStream = 0,
|
UnusedStream = 0,
|
||||||
|
|
|
@ -476,6 +476,37 @@ void mdmp_dump(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
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:
|
default:
|
||||||
printf("NIY %d\n", dir->StreamType);
|
printf("NIY %d\n", dir->StreamType);
|
||||||
|
|
Loading…
Reference in New Issue