Return to BSD News archive
Xref: sserve gnu.gcc.help:8088 gnu.g++.help:5445 comp.os.386bsd.questions:10312
Path: sserve!newshost.anu.edu.au!munnari.oz.au!constellation!mimbres.cs.unm.edu!ees1a0.engr.ccny.cuny.edu!rpi!usc!howland.reston.ans.net!europa.eng.gtefsd.com!uhog.mit.edu!grapevine.lcs.mit.edu!usenet.coe.montana.edu!pcnot4me
From: pcnot4me@cs.montana.edu (Craig Pratt)
Newsgroups: gnu.gcc.help,gnu.g++.help,comp.os.386bsd.questions
Subject: Re: GDB "incomplete type" messages (solved)
Date: 12 May 1994 02:57:19 GMT
Organization: Dept of Computer Science, Montana State University, Bozeman, MT
Lines: 38
Message-ID: <2qs5uf$2uj@pdq.coe.montana.edu>
References: <2qprbh$2ni@pdq.coe.montana.edu>
Reply-To: pcnot4me@cs.montana.edu (Craig Pratt)
NNTP-Posting-Host: fubar.cs.montana.edu
Keywords: gcc g++ gdb struct
Thanks for those who replied. It turns out this is a bug in g++. I
presume it's a problem with the way it's storing the debug type info.
The workaround is simple - see below.
In article <2qprbh$2ni@pdq.coe.montana.edu>,
Craig Pratt <pcnot4me@cs.montana.edu> wrote:
>We're having a problem with either gdb 4.11 or gcc 2.4.5 under FreeBSD
>1.1.0 Beta that may qualify as a "bug."
>
>A structure in the program is declared as:
>
> typedef struct {
> id_name type_name;
> int typeOf; // type (via the #defines in typclass.h)
> int flags; // weird things (forward, private)
> int ssPosition; // position of this type in the Static Scope Table
> void *element; // pointer to some type class
> } AdacsType;
...
>or enter a "ptype AdacsType" gdb prints:
>
> type = struct AdacsType {
> <incomplete type>
> }
But, if the above struct is declared as:
typedef struct AnyUniqueStructNameHere {
...
} AdacsType;
it will then be visible in gdb. This bug is limited to g++. Either of
the above structs works fine in gcc.
--
Craig Pratt Craig.Pratt@cs.montana.edu
Montana State University, Bozeman MT gcp1070@msu.oscs.montana.edu
"Think for yourself and feel the walls...
become sand beneath your feet." - Queensrych