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
24743774
Commit
24743774
authored
Jun 18, 2006
by
Eric Pouech
Committed by
Alexandre Julliard
Jun 20, 2006
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
dbghelp: Dwarf2 & AT_byte_size.
- AT_byte_size can be larger than a single byte (especially for enums) - added missing enumeration type parsing
parent
e7908525
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
15 additions
and
5 deletions
+15
-5
dwarf.c
dlls/dbghelp/dwarf.c
+15
-5
No files found.
dlls/dbghelp/dwarf.c
View file @
24743774
...
...
@@ -2,6 +2,7 @@
* File dwarf.c - read dwarf2 information from the ELF modules
*
* Copyright (C) 2005, Raphael Junqueira
* Copyright (C) 2006, Eric Pouech
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
...
...
@@ -489,6 +490,9 @@ typedef struct dwarf2_parse_context_s {
unsigned
char
level
;
}
dwarf2_parse_context_t
;
/* forward declarations */
static
struct
symt_enum
*
dwarf2_parse_enumeration_type
(
struct
module
*
module
,
dwarf2_abbrev_entry_t
*
entry
,
dwarf2_parse_context_t
*
ctx
);
static
unsigned
char
dwarf2_parse_byte
(
dwarf2_parse_context_t
*
ctx
)
{
unsigned
char
uvalue
=
*
(
const
unsigned
char
*
)
ctx
->
data
;
...
...
@@ -908,7 +912,7 @@ static struct symt_basic* dwarf2_parse_base_type(struct module* module, dwarf2_a
TRACE
(
"found name %s
\n
"
,
name
);
break
;
case
DW_AT_byte_size
:
size
=
dwarf2_parse_
byte
(
ctx
);
size
=
dwarf2_parse_
attr_as_data
(
attr
,
ctx
);
break
;
case
DW_AT_encoding
:
encoding
=
dwarf2_parse_byte
(
ctx
);
...
...
@@ -992,7 +996,7 @@ static struct symt_pointer* dwarf2_parse_pointer_type(struct module* module, dwa
for
(
attr
=
entry
->
attrs
;
NULL
!=
attr
;
attr
=
attr
->
next
)
{
switch
(
attr
->
attribute
)
{
case
DW_AT_byte_size
:
size
=
dwarf2_parse_
byte
(
ctx
);
size
=
dwarf2_parse_
attr_as_data
(
attr
,
ctx
);
break
;
case
DW_AT_type
:
{
...
...
@@ -1314,6 +1318,12 @@ static void dwarf2_parse_udt_members(struct module* module, dwarf2_abbrev_entry_
case
DW_TAG_member
:
dwarf2_parse_udt_member
(
module
,
entry
,
ctx
,
symt
);
break
;
case
DW_TAG_enumeration_type
:
{
struct
symt_enum
*
symt
=
dwarf2_parse_enumeration_type
(
module
,
entry
,
ctx
);
dwarf2_add_symt_ref
(
module
,
entry_ref
,
&
symt
->
symt
);
}
break
;
default:
{
dwarf2_abbrev_entry_attr_t
*
attr
;
...
...
@@ -1349,7 +1359,7 @@ static struct symt_udt* dwarf2_parse_class_type(struct module* module, dwarf2_ab
TRACE
(
"found name %s
\n
"
,
name
);
break
;
case
DW_AT_byte_size
:
size
=
dwarf2_parse_
byte
(
ctx
);
size
=
dwarf2_parse_
attr_as_data
(
attr
,
ctx
);
break
;
case
DW_AT_decl_file
:
case
DW_AT_decl_line
:
...
...
@@ -1389,7 +1399,7 @@ static struct symt_udt* dwarf2_parse_struct_type(struct module* module, dwarf2_a
TRACE
(
"found name %s
\n
"
,
name
);
break
;
case
DW_AT_byte_size
:
size
=
dwarf2_parse_
byte
(
ctx
);
size
=
dwarf2_parse_
attr_as_data
(
attr
,
ctx
);
break
;
case
DW_AT_decl_file
:
case
DW_AT_decl_line
:
...
...
@@ -1429,7 +1439,7 @@ static struct symt_udt* dwarf2_parse_union_type(struct module* module, dwarf2_ab
TRACE
(
"found name %s
\n
"
,
name
);
break
;
case
DW_AT_byte_size
:
size
=
dwarf2_parse_
byte
(
ctx
);
size
=
dwarf2_parse_
attr_as_data
(
attr
,
ctx
);
break
;
case
DW_AT_decl_file
:
case
DW_AT_decl_line
:
...
...
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