This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
RE: Breakpoint on class member function
- From: Mathews_Alex at emc dot com
- To: drow at mvista dot com, Mathews_Alex at emc dot com
- Cc: gdb at sources dot redhat dot com
- Date: Wed, 18 Jun 2003 13:31:33 -0400
- Subject: RE: Breakpoint on class member function
Finally figured out what was going on. I think it's because when I do the
target remote, the entry point is into a C routine, so the current language
is c instead of c++. When the language is c++ then the breakpoint works as
expected.
-----Original Message-----
From: Daniel Jacobowitz [mailto:drow@mvista.com]
Sent: Wednesday, June 18, 2003 12:07 PM
To: Mathews_Alex@emc.com
Cc: gdb@sources.redhat.com
Subject: Re: Breakpoint on class member function
Well, if I can't get a test case I'm not sure how much help I can be.
Let's see...
Is "ptype foo" correct both before and after the "target remote"?
Does it list foo1 as a member?
If both are yes, you're going to have to debug the lookup routines
yourself to see where the problem is.
On Wed, Jun 18, 2003 at 11:36:49AM -0400, Mathews_Alex@emc.com wrote:
> I have tried with a gdb 5.3 without my changes and see the same problem.
> When I do the configure I use target==i686-pc-linux if that's of any
> significance. I'm working with a proprietary OS, so I don't have a binary
> to distribute.
>
> Doing "b foo::foo1; delete 1; b foo::foo1" without the target remote does
> work.
>
>
> -----Original Message-----
> From: Daniel Jacobowitz [mailto:drow@mvista.com]
> Sent: Wednesday, June 18, 2003 11:06 AM
> To: Mathews_Alex@emc.com
> Cc: gdb@sources.redhat.com
> Subject: Re: Breakpoint on class member function
>
>
> On Wed, Jun 18, 2003 at 10:50:29AM -0400, Mathews_Alex@emc.com wrote:
> >
> > I'm working with an internally modified gdb 5.3. I'm trying to figure
out
> > if something happens with symbols after a target remote is issued. The
> > binary is ELF format with debugging information built with gcc 3.2. The
> > scenario that I'm seeing is the following:
> >
> > (gdb) file symbols.gdb
> > (gdb) b foo::foo1
> > Breakpoint 1 @ ...
> > (gdb) delete 1
> > (gdb) target remote /dev/ttyS1
> > (gdb) b foo::foo1
> > the class foo does not have any method named foo1
> > Hint: try 'foo::foo1<TAB> or 'foo::foo1<ESC-?>
> > (gdb) b 'foo::foo1(char *, char *)'
> > Breakpoint 2 @ ...
> >
> > So, before I do a target remote, I'm able to set a breakpoint without
the
> > fully typed member function. Then afterwards, it won't work unless it's
> > fully typed, so I'm forced to use the hint provided. I haven't modified
> > anything in the symbol area, but I have made modifications to target
> remote
> > related code.
> >
> > Any insight would be appreciated. I did see bug 1023, but I wasn't sure
> if
> > that applied in my case.
>
> This doesn't make any sense to me. Do you have any distributable
> binaries which reproduce the problem - and can you reproduce it without
> your local changes?
>
> Does "b foo::foo1; delete 1; b foo::foo1" work without the target
> remote?
>
> --
> Daniel Jacobowitz
> MontaVista Software Debian GNU/Linux Developer
>
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer