This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: cannot subscript something of type <data variable, no debug info>
My system is:
- linux 2.6.7 (running on i386, specifically P4 2.4GHz)
- g++ (GCC) 3.3.3 (SuSE Linux)
- GNU gdb 6.1
I compile the following code via
g++ -Wall -g tester.cpp -o tester
// source file
#include <stdio.h>
#include "tester.h"
S_Module Mod[1] ;
int main(void)
{
Mod[0].powered_up = 1 ;
printf("powered_up=%u\n", Mod[0].powered_up) ;
return 0;
}
// header file tester.h
typedef struct S_Module_s
{
unsigned Stat; // module status
unsigned sys_status ; // system errno
unsigned powered_up;
unsigned compat ;
} S_Module;
// } __attribute__ ((__packed__)) S_Module;
extern S_Module Mod[1];
//*****************************************************
After compiling as previously described and loading tester into gdb, I see:
(gdb) p Mod[0]
cannot subscript something of type `<data variable, no debug info>'
(gdb) p (S_Module) Mod[0]
No symbol "S_Module" in current context.
//*****************************************************
Note that if I pull the header-file data into the source file, then print
can successfully access the struct. When it's in a separate header, though,
it doesn't work. Of course, my real project has 10 headers and 30-some
source files, so eliminating headers isn't practical. Is there something
else I can do to make this work?? Or should I call this a bug report??
Dan Miller
//*****************************************************
----- Original Message -----
From: "Daniel Jacobowitz" <drow@false.org>
To: "Daniel Miller (IMI)" <dan@imi-test.com>
Cc: <gdb@sources.redhat.com>
Sent: Friday, August 20, 2004 19:11
Subject: Re: cannot subscript something of type <data variable, no debug
info>
> On Fri, Aug 20, 2004 at 06:23:03PM -0700, Daniel Miller (IMI) wrote:
> > I'm trying to debug an application with gdb... I have a struct that is
> > declared thus:
> >
> > typedef struct S_Module_s
> > {
> > unsigned powered_up;
> > ... other data elements ...
> > } __attribute__ ((__packed__)) S_Module;
> >
> > extern S_Module Mod[1];
> >
> > I tried compiling both with -g and -ggdb, with no change in the
symptoms.
>
> What platform? What version of GDB?
>
> > I don't seem to be able to display any of the contents of Mod[0], at
all....
> > I get effects such as:
> >
> > (gdb) p Mod[0]
> > cannot subscript something of type `<data variable, no debug info>'
> > (gdb) p (S_Module) Mod[0]
> > No symbol "S_Module" in current context.
> > (gdb) p (struct S_Module_s) Mod[0]
> > No struct type named S_Module_s.
> >
> > What do I have to do to get gdb to recognize my variables?? Virtually
every
> > GUI-based debugger out there is a wrapper around gdb, to if it's not
happy,
> > nobody's happy!!! Please help!!
>
> We'll need a standalone test case, or at least a dump of the debugging
> information in the application, to answer this question.
>
> --
> Daniel Jacobowitz
>
>