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
b8910217
Commit
b8910217
authored
Mar 21, 2024
by
Eric Pouech
Committed by
Alexandre Julliard
Apr 15, 2024
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
winedump: Support a couple of 'section' options (minidump).
Signed-off-by:
Eric Pouech
<
epouech@codeweavers.com
>
parent
2253504a
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
18 additions
and
3 deletions
+18
-3
main.c
tools/winedump/main.c
+3
-1
minidump.c
tools/winedump/minidump.c
+15
-2
No files found.
tools/winedump/main.c
View file @
b8910217
...
...
@@ -228,7 +228,9 @@ static const struct my_option option_table[] = {
" for NE: export, resource
\n
"
" for PE: import, export, debug, resource, tls, loadcfg, clr, reloc, dynreloc, except, apiset
\n
"
" for PDB: PDB, TPI, DBI, IPI, public, image
\n
"
" and suboptions: hash (PDB, TPI, TPI, DBI, public) and line (DBI)"
},
" and suboptions: hash (PDB, TPI, TPI, DBI, public) and line (DBI)
\n
"
" for minidump: exception, handle, info, memory, module, thread
\n
"
" and suboptions: content (memory, module, thread)
\n
"
},
{
"-t"
,
DUMP
,
0
,
do_symtable
,
"-t Dump symbol table"
},
{
"-x"
,
DUMP
,
0
,
do_dumpall
,
"-x Dump everything"
},
{
"sym"
,
DMGL
,
0
,
do_demangle
,
"sym <sym> Demangle C++ symbol <sym> and exit"
},
...
...
tools/winedump/minidump.c
View file @
b8910217
...
...
@@ -85,6 +85,7 @@ void mdmp_dump(void)
switch
(
dir
->
StreamType
)
{
case
ThreadListStream
:
if
(
globals_dump_sect
(
"thread"
))
{
const
MINIDUMP_THREAD_LIST
*
mtl
=
stream
;
const
MINIDUMP_THREAD
*
mt
=
mtl
->
Threads
;
...
...
@@ -99,6 +100,7 @@ void mdmp_dump(void)
printf
(
" Priority: %u
\n
"
,
mt
->
Priority
);
printf
(
" Teb: %s
\n
"
,
get_hexint64_str
(
mt
->
Teb
));
printf
(
" Stack: %s +%#x
\n
"
,
get_hexint64_str
(
mt
->
Stack
.
StartOfMemoryRange
),
mt
->
Stack
.
Memory
.
DataSize
);
if
(
globals_dump_sect
(
"content"
))
dump_mdmp_data
(
&
mt
->
Stack
.
Memory
,
" "
);
printf
(
" ThreadContext:
\n
"
);
dump_mdmp_data
(
&
mt
->
ThreadContext
,
" "
);
...
...
@@ -107,6 +109,7 @@ void mdmp_dump(void)
break
;
case
ModuleListStream
:
case
0xFFF0
:
if
(
globals_dump_sect
(
"module"
))
{
const
MINIDUMP_MODULE_LIST
*
mml
=
stream
;
const
MINIDUMP_MODULE
*
mm
=
mml
->
Modules
;
...
...
@@ -184,8 +187,10 @@ void mdmp_dump(void)
printf
(
" dwFileDate: %x%08x
\n
"
,
(
UINT
)
mm
->
VersionInfo
.
dwFileDateMS
,
(
UINT
)
mm
->
VersionInfo
.
dwFileDateLS
);
printf
(
" CvRecord: <%u>
\n
"
,
(
UINT
)
mm
->
CvRecord
.
DataSize
);
if
(
globals_dump_sect
(
"content"
))
dump_mdmp_data
(
&
mm
->
CvRecord
,
" "
);
printf
(
" MiscRecord: <%u>
\n
"
,
(
UINT
)
mm
->
MiscRecord
.
DataSize
);
if
(
globals_dump_sect
(
"content"
))
dump_mdmp_data
(
&
mm
->
MiscRecord
,
" "
);
printf
(
" Reserved0: %s
\n
"
,
get_hexint64_str
(
mm
->
Reserved0
));
printf
(
" Reserved1: %s
\n
"
,
get_hexint64_str
(
mm
->
Reserved1
));
...
...
@@ -193,6 +198,7 @@ void mdmp_dump(void)
}
break
;
case
MemoryListStream
:
if
(
globals_dump_sect
(
"memory"
))
{
const
MINIDUMP_MEMORY_LIST
*
mml
=
stream
;
const
MINIDUMP_MEMORY_DESCRIPTOR
*
mmd
=
mml
->
MemoryRanges
;
...
...
@@ -201,12 +207,15 @@ 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
,
" "
);
}
}
break
;
case
SystemInfoStream
:
if
(
globals_dump_sect
(
"info"
))
{
const
MINIDUMP_SYSTEM_INFO
*
msi
=
stream
;
const
char
*
str
;
...
...
@@ -369,6 +378,7 @@ void mdmp_dump(void)
}
break
;
case
MiscInfoStream
:
if
(
globals_dump_sect
(
"info"
))
{
const
MINIDUMP_MISC_INFO
*
mmi
=
stream
;
...
...
@@ -386,6 +396,7 @@ void mdmp_dump(void)
}
break
;
case
ExceptionStream
:
if
(
globals_dump_sect
(
"exception"
))
{
const
MINIDUMP_EXCEPTION_STREAM
*
mes
=
stream
;
...
...
@@ -406,6 +417,7 @@ void mdmp_dump(void)
}
break
;
case
HandleDataStream
:
if
(
globals_dump_sect
(
"handle"
))
{
const
MINIDUMP_HANDLE_DATA_STREAM
*
mhd
=
stream
;
...
...
@@ -439,6 +451,7 @@ void mdmp_dump(void)
}
break
;
case
ThreadInfoListStream
:
if
(
globals_dump_sect
(
"thread"
))
{
const
MINIDUMP_THREAD_INFO_LIST
*
til
=
stream
;
...
...
@@ -468,8 +481,8 @@ void mdmp_dump(void)
}
}
break
;
case
UnloadedModuleListStream
:
if
(
globals_dump_sect
(
"module"
))
{
const
MINIDUMP_UNLOADED_MODULE_LIST
*
uml
=
stream
;
...
...
@@ -494,11 +507,11 @@ void mdmp_dump(void)
}
}
break
;
default:
printf
(
"NIY %d
\n
"
,
dir
->
StreamType
);
printf
(
" RVA: %u
\n
"
,
(
UINT
)
dir
->
Location
.
Rva
);
printf
(
" Size: %u
\n
"
,
dir
->
Location
.
DataSize
);
if
(
globals_dump_sect
(
"content"
))
dump_mdmp_data
(
&
dir
->
Location
,
" "
);
break
;
}
...
...
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