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
c0f500ba
Commit
c0f500ba
authored
Dec 03, 2023
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
winedump: Add a couple of ARM unwind codes.
parent
17de5daa
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
19 additions
and
1 deletion
+19
-1
pe.c
tools/winedump/pe.c
+19
-1
No files found.
tools/winedump/pe.c
View file @
c0f500ba
...
...
@@ -176,6 +176,7 @@ static const void *get_hybrid_metadata(void)
if
(
!
cfg
)
return
0
;
size
=
min
(
size
,
cfg
->
Size
);
if
(
size
<=
offsetof
(
IMAGE_LOAD_CONFIG_DIRECTORY64
,
CHPEMetadataPointer
))
return
0
;
if
(
!
cfg
->
CHPEMetadataPointer
)
return
0
;
return
RVA
(
cfg
->
CHPEMetadataPointer
-
((
const
IMAGE_OPTIONAL_HEADER64
*
)
&
PE_nt_headers
->
OptionalHeader
)
->
ImageBase
,
1
);
}
else
...
...
@@ -184,6 +185,7 @@ static const void *get_hybrid_metadata(void)
if
(
!
cfg
)
return
0
;
size
=
min
(
size
,
cfg
->
Size
);
if
(
size
<=
offsetof
(
IMAGE_LOAD_CONFIG_DIRECTORY32
,
CHPEMetadataPointer
))
return
0
;
if
(
!
cfg
->
CHPEMetadataPointer
)
return
0
;
return
RVA
(
cfg
->
CHPEMetadataPointer
-
PE_nt_headers
->
OptionalHeader
.
ImageBase
,
1
);
}
}
...
...
@@ -1274,7 +1276,15 @@ static void dump_armnt_unwind_info( const struct runtime_function_armnt *fnc )
printf
(
"}
\n
"
);
}
else
if
(
code
==
0xee
)
printf
(
"unknown 16
\n
"
);
{
BYTE
excodes
=
bytes
[
++
b
];
if
(
excodes
==
0x01
)
printf
(
"MSFT_OP_MACHINE_FRAME
\n
"
);
else
if
(
excodes
==
0x02
)
printf
(
"MSFT_OP_CONTEXT
\n
"
);
else
printf
(
"MSFT opcode %u
\n
"
,
excodes
);
}
else
if
(
code
==
0xef
)
{
WORD
excode
;
...
...
@@ -1550,10 +1560,18 @@ static void dump_arm64_codes( const BYTE *ptr, unsigned int count )
{
printf
(
"MSFT_OP_CONTEXT
\n
"
);
}
else
if
(
ptr
[
i
]
==
0xeb
)
/* MSFT_OP_EC_CONTEXT */
{
printf
(
"MSFT_OP_EC_CONTEXT
\n
"
);
}
else
if
(
ptr
[
i
]
==
0xec
)
/* MSFT_OP_CLEAR_UNWOUND_TO_CALL */
{
printf
(
"MSFT_OP_CLEAR_UNWOUND_TO_CALL
\n
"
);
}
else
if
(
ptr
[
i
]
==
0xfc
)
/* pac_sign_lr */
{
printf
(
"pac_sign_lr
\n
"
);
}
else
printf
(
"??
\n
"
);
}
}
...
...
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