Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
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-cw
Commits
6bd22a2f
Commit
6bd22a2f
authored
Sep 11, 2021
by
Eric Pouech
Committed by
Alexandre Julliard
Sep 14, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
dbghelp/dwarf: Add support for FORM_loc_offset and FORM_sec_offset.
Signed-off-by:
Eric Pouech
<
eric.pouech@gmail.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
8241fe38
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
14 additions
and
2 deletions
+14
-2
dwarf.c
dlls/dbghelp/dwarf.c
+14
-2
No files found.
dlls/dbghelp/dwarf.c
View file @
6bd22a2f
...
@@ -489,7 +489,6 @@ static void dwarf2_swallow_attribute(dwarf2_traverse_context_t* ctx,
...
@@ -489,7 +489,6 @@ static void dwarf2_swallow_attribute(dwarf2_traverse_context_t* ctx,
case
DW_FORM_ref2
:
step
=
2
;
break
;
case
DW_FORM_ref2
:
step
=
2
;
break
;
case
DW_FORM_data4
:
case
DW_FORM_data4
:
case
DW_FORM_ref4
:
step
=
4
;
break
;
case
DW_FORM_ref4
:
step
=
4
;
break
;
case
DW_FORM_strp
:
step
=
head
->
offset_size
;
break
;
case
DW_FORM_data8
:
case
DW_FORM_data8
:
case
DW_FORM_ref8
:
step
=
8
;
break
;
case
DW_FORM_ref8
:
step
=
8
;
break
;
case
DW_FORM_sdata
:
case
DW_FORM_sdata
:
...
@@ -500,6 +499,8 @@ static void dwarf2_swallow_attribute(dwarf2_traverse_context_t* ctx,
...
@@ -500,6 +499,8 @@ static void dwarf2_swallow_attribute(dwarf2_traverse_context_t* ctx,
case
DW_FORM_block1
:
step
=
dwarf2_parse_byte
(
ctx
);
break
;
case
DW_FORM_block1
:
step
=
dwarf2_parse_byte
(
ctx
);
break
;
case
DW_FORM_block2
:
step
=
dwarf2_parse_u2
(
ctx
);
break
;
case
DW_FORM_block2
:
step
=
dwarf2_parse_u2
(
ctx
);
break
;
case
DW_FORM_block4
:
step
=
dwarf2_parse_u4
(
ctx
);
break
;
case
DW_FORM_block4
:
step
=
dwarf2_parse_u4
(
ctx
);
break
;
case
DW_FORM_sec_offset
:
case
DW_FORM_strp
:
step
=
head
->
offset_size
;
break
;
default:
default:
FIXME
(
"Unhandled attribute form %lx
\n
"
,
abbrev_attr
->
form
);
FIXME
(
"Unhandled attribute form %lx
\n
"
,
abbrev_attr
->
form
);
return
;
return
;
...
@@ -625,6 +626,11 @@ static void dwarf2_fill_attr(const dwarf2_parse_context_t* ctx,
...
@@ -625,6 +626,11 @@ static void dwarf2_fill_attr(const dwarf2_parse_context_t* ctx,
TRACE
(
"block<%p,%u>
\n
"
,
attr
->
u
.
block
.
ptr
,
attr
->
u
.
block
.
size
);
TRACE
(
"block<%p,%u>
\n
"
,
attr
->
u
.
block
.
ptr
,
attr
->
u
.
block
.
size
);
break
;
break
;
case
DW_FORM_sec_offset
:
attr
->
u
.
lluvalue
=
dwarf2_get_addr
(
data
,
ctx
->
head
.
offset_size
);
TRACE
(
"sec_offset<%s>
\n
"
,
wine_dbgstr_longlong
(
attr
->
u
.
lluvalue
));
break
;
default:
default:
FIXME
(
"Unhandled attribute form %lx
\n
"
,
abbrev_attr
->
form
);
FIXME
(
"Unhandled attribute form %lx
\n
"
,
abbrev_attr
->
form
);
break
;
break
;
...
@@ -935,11 +941,16 @@ static BOOL dwarf2_compute_location_attr(dwarf2_parse_context_t* ctx,
...
@@ -935,11 +941,16 @@ static BOOL dwarf2_compute_location_attr(dwarf2_parse_context_t* ctx,
loc
->
reg
=
0
;
loc
->
reg
=
0
;
loc
->
offset
=
xloc
.
u
.
uvalue
;
loc
->
offset
=
xloc
.
u
.
uvalue
;
return
TRUE
;
return
TRUE
;
case
DW_FORM_data4
:
case
DW_FORM_data8
:
case
DW_FORM_data4
:
loc
->
kind
=
loc_dwarf2_location_list
;
loc
->
kind
=
loc_dwarf2_location_list
;
loc
->
reg
=
Wine_DW_no_register
;
loc
->
reg
=
Wine_DW_no_register
;
loc
->
offset
=
xloc
.
u
.
uvalue
;
loc
->
offset
=
xloc
.
u
.
uvalue
;
return
TRUE
;
return
TRUE
;
case
DW_FORM_data8
:
case
DW_FORM_sec_offset
:
loc
->
kind
=
loc_dwarf2_location_list
;
loc
->
reg
=
Wine_DW_no_register
;
loc
->
offset
=
xloc
.
u
.
lluvalue
;
return
TRUE
;
case
DW_FORM_block
:
case
DW_FORM_block
:
case
DW_FORM_block1
:
case
DW_FORM_block1
:
case
DW_FORM_block2
:
case
DW_FORM_block2
:
...
@@ -1662,6 +1673,7 @@ static void dwarf2_parse_variable(dwarf2_subprogram_t* subpgm,
...
@@ -1662,6 +1673,7 @@ static void dwarf2_parse_variable(dwarf2_subprogram_t* subpgm,
break
;
break
;
case
DW_FORM_data8
:
case
DW_FORM_data8
:
case
DW_FORM_sec_offset
:
v
.
n1
.
n2
.
vt
=
VT_UI8
;
v
.
n1
.
n2
.
vt
=
VT_UI8
;
v
.
n1
.
n2
.
n3
.
llVal
=
value
.
u
.
lluvalue
;
v
.
n1
.
n2
.
n3
.
llVal
=
value
.
u
.
lluvalue
;
break
;
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