This is the mail archive of the gdb@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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
>
>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]