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
82dd799d
Commit
82dd799d
authored
Jun 05, 2015
by
Ken Thomases
Committed by
Alexandre Julliard
Jun 05, 2015
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ntdll: Add partial support for version 3 of DWARF CIEs which are generated by Clang/LLVM.
parent
6444290a
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
5 additions
and
2 deletions
+5
-2
signal_x86_64.c
dlls/ntdll/signal_x86_64.c
+5
-2
No files found.
dlls/ntdll/signal_x86_64.c
View file @
82dd799d
...
@@ -1342,7 +1342,7 @@ static NTSTATUS dwarf_virtual_unwind( ULONG64 ip, ULONG64 *frame,CONTEXT *contex
...
@@ -1342,7 +1342,7 @@ static NTSTATUS dwarf_virtual_unwind( ULONG64 ip, ULONG64 *frame,CONTEXT *contex
/* parse the CIE first */
/* parse the CIE first */
if
(
cie
->
version
!=
1
)
if
(
cie
->
version
!=
1
&&
cie
->
version
!=
3
)
{
{
FIXME
(
"unknown CIE version %u at %p
\n
"
,
cie
->
version
,
cie
);
FIXME
(
"unknown CIE version %u at %p
\n
"
,
cie
->
version
,
cie
);
return
STATUS_INVALID_DISPOSITION
;
return
STATUS_INVALID_DISPOSITION
;
...
@@ -1351,7 +1351,10 @@ static NTSTATUS dwarf_virtual_unwind( ULONG64 ip, ULONG64 *frame,CONTEXT *contex
...
@@ -1351,7 +1351,10 @@ static NTSTATUS dwarf_virtual_unwind( ULONG64 ip, ULONG64 *frame,CONTEXT *contex
info
.
code_align
=
dwarf_get_uleb128
(
&
ptr
);
info
.
code_align
=
dwarf_get_uleb128
(
&
ptr
);
info
.
data_align
=
dwarf_get_sleb128
(
&
ptr
);
info
.
data_align
=
dwarf_get_sleb128
(
&
ptr
);
info
.
retaddr_reg
=
*
ptr
++
;
if
(
cie
->
version
==
1
)
info
.
retaddr_reg
=
*
ptr
++
;
else
info
.
retaddr_reg
=
dwarf_get_uleb128
(
&
ptr
);
info
.
state
.
cfa_rule
=
RULE_CFA_OFFSET
;
info
.
state
.
cfa_rule
=
RULE_CFA_OFFSET
;
TRACE
(
"function %lx base %p cie %p len %x id %x version %x aug '%s' code_align %lu data_align %ld retaddr %s
\n
"
,
TRACE
(
"function %lx base %p cie %p len %x id %x version %x aug '%s' code_align %lu data_align %ld retaddr %s
\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