This is the mail archive of the gdb-patches@sourceware.org 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: Breakpoints in constructors


On Fri, Jan 06, 2006 at 07:48:57PM +0530, Amit Kale wrote:
> On Friday 06 Jan 2006 7:15 pm, Daniel Jacobowitz wrote:
> > On Fri, Jan 06, 2006 at 06:56:39PM +0530, Amit Kale wrote:
> > > I was not able to fix other failures though. The major one being a
> > > breakpoint on a statement in main causes three breakpoints to appear.
> > > It's because this statement is a call to a C++ inlined function. The
> > > expansion of inline function dodges the check in my patch for multiple
> > > breakpoints appearing for the same C statement when the statement is
> > > spread across multiple instructions interlaced with instructions from
> > > surrounding statements. I checked for function name, which would be the
> > > inline function name. That's why my check fails. Sigh, I wanted to send
> > > this patch again only after fixing this problem, but don't have any good
> > > ideas on how to do that. I'll very much appreciate if anyone has ideas
> > > about fixing this.
> >
> > The hack of checking whether they appear in the same function just
> > won't scale to fix this - possibly ever, but certainly not until inline
> > functions are represented properly in GDB's symbol table.
> 
> Bad news.
> 
> Any ideas about how to check whether multiple functions appear in the same 
> function block?

There is no way to distinguish between multiple inlined copies of a
line and multiple fragments of a line generated by optimization, given
GCC's current .debug_line section, without also having .debug_info and
building inline functions into the symbol table.  The information just
isn't there.

-- 
Daniel Jacobowitz
CodeSourcery


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