Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
d50f7b02
Commit
d50f7b02
authored
May 17, 2022
by
Nikolay Sivov
Committed by
Alexandre Julliard
May 18, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
winedump: Add support for ThreadInfoListStream stream.
Signed-off-by:
Nikolay Sivov
<
nsivov@codeweavers.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
0d89f67e
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
52 additions
and
0 deletions
+52
-0
minidumpapiset.h
include/minidumpapiset.h
+21
-0
minidump.c
tools/winedump/minidump.c
+31
-0
No files found.
include/minidumpapiset.h
View file @
d50f7b02
...
...
@@ -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
,
...
...
tools/winedump/minidump.c
View file @
d50f7b02
...
...
@@ -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
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment