This is the mail archive of the
gdb-prs@sources.redhat.com
mailing list for the GDB project.
gdb/53: Something weird with void* types
- To: gdb-gnats at sources dot redhat dot com
- Subject: gdb/53: Something weird with void* types
- From: fnasser at redhat dot com
- Date: 10 May 2001 17:31:19 -0000
- Reply-To: fnasser at redhat dot com
>Number: 53
>Category: gdb
>Synopsis: Something weird with void* types
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Thu May 10 10:38:01 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator: fnasser@redhat.com
>Release: CVS head
>Organization:
>Environment:
Red Hat Linux 7.0 and 7.1
>Description:
FYI, we are having to make a change in Insight to cope with a funny
thing that recently appeared in GDB.
The target type of a void* does not have the type name set to "void" any
longer.
(gdb) p *type
$3 = {code = TYPE_CODE_PTR, name = 0x0, tag_name = 0x0, length = 4,
upper_bound_type = 0, lower_bound_type = 0, objfile = 0x854e998,
target_type = 0x8bcd5d8, pointer_type = 0x0, reference_type = 0x0,
cv_type = 0x8bcd61c, flags = 1, nfields = 0, fields = 0x0,
vptr_basetype = 0x0, vptr_fieldno = -1, type_specific = {arg_types =
0x0,
cplus_stuff = 0x0}}
(gdb) p *target
$4 = {code = TYPE_CODE_VOID, name = 0x0, tag_name = 0x0, length = 1,
upper_bound_type = 0, lower_bound_type = 0, objfile = 0x854e998,
target_type = 0x0, pointer_type = 0x8bcd61c, reference_type = 0x0,
cv_type = 0x8bcd5d8, flags = 0, nfields = 0, fields = 0x0,
vptr_basetype = 0x0, vptr_fieldno = -1, type_specific = {arg_types =
0x0,
cplus_stuff = 0x0}}
As you see, TYPE_CODE_VOID does not have a name anymore, at least when
it is the target of a (void *) type.
>How-To-Repeat:
Create a simple program with a (void *) and debug it with GDB.
Attach a second GDB to this GDB and put a breakpoint in any of the functions that get the type of variables.
Issue a command (like print) on the inferior GDB to force it into the function where you placed the breakpoint.
Look at the (void *) type and at the target_type entry.
You should get the output as above (with the name field of the target_type empty).
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted: