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
9859ec4c
Commit
9859ec4c
authored
Feb 17, 2003
by
Eric Pouech
Committed by
Alexandre Julliard
Feb 17, 2003
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
- added GetName() to retrieve type name
- reimplemented DumpTypes so that it really dumps the types content - now printing type information in 'info sym'
parent
ee04693c
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
73 additions
and
63 deletions
+73
-63
debugger.h
programs/winedbg/debugger.h
+2
-0
types.c
programs/winedbg/types.c
+71
-63
No files found.
programs/winedbg/debugger.h
View file @
9859ec4c
...
...
@@ -511,11 +511,13 @@ extern long long int DEBUG_GetExprValue(const DBG_VALUE * addr, char ** format);
extern
int
DEBUG_SetBitfieldParams
(
struct
datatype
*
dt
,
int
offset
,
int
nbits
,
struct
datatype
*
dt2
);
extern
int
DEBUG_CopyFieldlist
(
struct
datatype
*
dt
,
struct
datatype
*
dt2
);
extern
const
char
*
DEBUG_GetName
(
struct
datatype
*
dt
);
extern
enum
debug_type
DEBUG_GetType
(
struct
datatype
*
dt
);
extern
struct
datatype
*
DEBUG_TypeCast
(
enum
debug_type
,
const
char
*
);
extern
int
DEBUG_PrintTypeCast
(
const
struct
datatype
*
);
extern
int
DEBUG_PrintType
(
const
DBG_VALUE
*
addr
);
extern
struct
datatype
*
DEBUG_GetBasicType
(
enum
debug_type_basic
);
extern
int
DEBUG_DumpTypes
(
void
);
/* debugger/winedbg.c */
#define DBG_CHN_MESG 1
...
...
programs/winedbg/types.c
View file @
9859ec4c
...
...
@@ -617,7 +617,7 @@ DEBUG_AddStructElement(struct datatype * dt, char * name, struct datatype * type
}
}
m
=
(
struct
member
*
)
DBG_alloc
(
sizeof
(
struct
member
));
if
(
m
==
FALSE
)
if
(
m
==
NULL
)
{
return
FALSE
;
}
...
...
@@ -946,81 +946,89 @@ leave:
return
;
}
int
DEBUG_DumpTypes
(
void
)
static
void
DEBUG_DumpAType
(
struct
datatype
*
dt
,
BOOL
deep
)
{
struct
datatype
*
dt
=
NULL
;
struct
member
*
m
;
int
hash
;
int
nm
;
char
*
name
;
char
*
member_name
;
char
*
name
=
(
dt
->
name
)
?
dt
->
name
:
"--none--"
;
for
(
hash
=
0
;
hash
<
NR_TYPE_HASH
+
1
;
hash
++
)
/* EPP DEBUG_Printf(DBG_CHN_MESG, "0x%08lx ", (unsigned long)dt); */
switch
(
dt
->
type
)
{
for
(
dt
=
type_hash_table
[
hash
];
dt
;
dt
=
dt
->
next
)
case
DT_BASIC
:
DEBUG_Printf
(
DBG_CHN_MESG
,
"BASIC(%s)"
,
name
);
break
;
case
DT_POINTER
:
DEBUG_Printf
(
DBG_CHN_MESG
,
"POINTER(%s)<"
,
name
);
DEBUG_DumpAType
(
dt
->
un
.
pointer
.
pointsto
,
FALSE
);
DEBUG_Printf
(
DBG_CHN_MESG
,
">"
);
break
;
case
DT_STRUCT
:
DEBUG_Printf
(
DBG_CHN_MESG
,
"STRUCT(%s) %d {"
,
name
,
dt
->
un
.
structure
.
size
);
if
(
dt
->
un
.
structure
.
members
!=
NULL
)
{
struct
member
*
m
;
for
(
m
=
dt
->
un
.
structure
.
members
;
m
;
m
=
m
->
next
)
{
DEBUG_Printf
(
DBG_CHN_MESG
,
" %s(%d"
,
m
->
name
,
m
->
offset
/
8
);
if
(
m
->
offset
%
8
!=
0
)
DEBUG_Printf
(
DBG_CHN_MESG
,
".%d"
,
m
->
offset
/
8
);
DEBUG_Printf
(
DBG_CHN_MESG
,
"/%d"
,
m
->
size
/
8
);
if
(
m
->
size
%
8
!=
0
)
DEBUG_Printf
(
DBG_CHN_MESG
,
".%d"
,
m
->
size
%
8
);
DEBUG_Printf
(
DBG_CHN_MESG
,
")"
);
}
}
DEBUG_Printf
(
DBG_CHN_MESG
,
" }"
);
break
;
case
DT_ARRAY
:
DEBUG_Printf
(
DBG_CHN_MESG
,
"ARRAY(%s)["
,
name
);
DEBUG_DumpAType
(
dt
->
un
.
array
.
basictype
,
FALSE
);
DEBUG_Printf
(
DBG_CHN_MESG
,
"]"
);
break
;
case
DT_ENUM
:
DEBUG_Printf
(
DBG_CHN_MESG
,
"ENUM(%s)"
,
name
);
break
;
case
DT_BITFIELD
:
DEBUG_Printf
(
DBG_CHN_MESG
,
"BITFIELD(%s)"
,
name
);
break
;
case
DT_FUNC
:
DEBUG_Printf
(
DBG_CHN_MESG
,
"FUNC(%s)("
,
name
);
DEBUG_DumpAType
(
dt
->
un
.
funct
.
rettype
,
FALSE
);
DEBUG_Printf
(
DBG_CHN_MESG
,
")"
);
break
;
default:
DEBUG_Printf
(
DBG_CHN_ERR
,
"Unknown type???"
);
break
;
}
if
(
deep
)
DEBUG_Printf
(
DBG_CHN_MESG
,
"
\n
"
);
}
int
DEBUG_DumpTypes
(
void
)
{
struct
datatype
*
dt
=
NULL
;
int
hash
;
for
(
hash
=
0
;
hash
<
NR_TYPE_HASH
+
1
;
hash
++
)
{
for
(
dt
=
type_hash_table
[
hash
];
dt
;
dt
=
dt
->
next
)
{
name
=
"none"
;
if
(
dt
->
name
!=
NULL
)
{
name
=
dt
->
name
;
}
switch
(
dt
->
type
)
{
case
DT_BASIC
:
DEBUG_Printf
(
DBG_CHN_MESG
,
"0x%08lx - BASIC(%s)
\n
"
,
(
unsigned
long
)
dt
,
name
);
break
;
case
DT_POINTER
:
DEBUG_Printf
(
DBG_CHN_MESG
,
"0x%08lx - POINTER(%s)(%08lx)
\n
"
,
(
unsigned
long
)
dt
,
name
,
(
unsigned
long
)
dt
->
un
.
pointer
.
pointsto
);
break
;
case
DT_STRUCT
:
member_name
=
"none"
;
nm
=
0
;
if
(
dt
->
un
.
structure
.
members
!=
NULL
&&
dt
->
un
.
structure
.
members
->
name
!=
NULL
)
{
member_name
=
dt
->
un
.
structure
.
members
->
name
;
for
(
m
=
dt
->
un
.
structure
.
members
;
m
;
m
=
m
->
next
)
{
nm
++
;
}
}
DEBUG_Printf
(
DBG_CHN_MESG
,
"0x%08lx - STRUCT(%s) %d %d %s
\n
"
,
(
unsigned
long
)
dt
,
name
,
dt
->
un
.
structure
.
size
,
nm
,
member_name
);
break
;
case
DT_ARRAY
:
DEBUG_Printf
(
DBG_CHN_MESG
,
"0x%08lx - ARRAY(%s)(%08lx)
\n
"
,
(
unsigned
long
)
dt
,
name
,
(
unsigned
long
)
dt
->
un
.
array
.
basictype
);
break
;
case
DT_ENUM
:
DEBUG_Printf
(
DBG_CHN_MESG
,
"0x%08lx - ENUM(%s)
\n
"
,
(
unsigned
long
)
dt
,
name
);
break
;
case
DT_BITFIELD
:
DEBUG_Printf
(
DBG_CHN_MESG
,
"0x%08lx - BITFIELD(%s)
\n
"
,
(
unsigned
long
)
dt
,
name
);
break
;
case
DT_FUNC
:
DEBUG_Printf
(
DBG_CHN_MESG
,
"0x%08lx - FUNC(%s)(%08lx)
\n
"
,
(
unsigned
long
)
dt
,
name
,
(
unsigned
long
)
dt
->
un
.
funct
.
rettype
);
break
;
default:
DEBUG_Printf
(
DBG_CHN_ERR
,
"Unknown type???
\n
"
);
break
;
}
DEBUG_DumpAType
(
dt
,
TRUE
);
}
}
return
TRUE
;
return
TRUE
;
}
enum
debug_type
DEBUG_GetType
(
struct
datatype
*
dt
)
{
return
dt
->
type
;
}
const
char
*
DEBUG_GetName
(
struct
datatype
*
dt
)
{
return
dt
->
name
;
}
struct
datatype
*
DEBUG_TypeCast
(
enum
debug_type
type
,
const
char
*
name
)
{
...
...
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