public inbox for gdb@sourceware.org
 help / color / mirror / Atom feed
From: Daniel Jacobowitz <drow@false.org>
To: Eli Zaretskii <eliz@gnu.org>
Cc: Michael Elizabeth Chastain <mec.gnu@mindspring.com>,
	gdb@sources.redhat.com, rolandz@poczta.fm
Subject: Re: How to setup a breakpoint on constructor
Date: Sat, 17 Jul 2004 14:54:00 -0000	[thread overview]
Message-ID: <20040717142927.GA29310@nevyn.them.org> (raw)
In-Reply-To: <5567-Sat17Jul2004132833+0300-eliz@gnu.org>

On Sat, Jul 17, 2004 at 01:28:33PM +0200, Eli Zaretskii wrote:
> > Date: Fri, 16 Jul 2004 15:31:17 -0400 (EDT)
> > From: mec.gnu@mindspring.com (Michael Elizabeth Chastain)
> > 
> > To take the points in reverse order,
> > 
> > > (B) It exposes the difference between complete and base constructors,
> > > which is an implementation detail of the C++ ABI that most users don't
> > > understand.
> > 
> > That is reality.
> 
> Yes.
> 
> > The reality is that g++ emits two functions in the object code.  In
> > my opinion, if we try to gloss over that, then we'll just create
> > more confusion for commands such as 'disassemble' and 'tbreak'.
> 
> We could perhaps help users who are oblivious to this (or just
> forgot) by showing them the possible places where GDB could put the
> breakpoint, including the more self-explaining names, and asking them
> what to do.  For example:
> 
>     (gdb) break 'A::A()'
>     The constructor 'A::A()' has two code instances:
> 
>       Address    Mangled Name   Name               Description
>       08048544   _ZN1AC1Ev      A::A()$base()      Base constructor for A
>       080486e2   _ZN1AC2Ev      A::A()$allocate()  Allocating constructor for A
> 
>     Where do you want to put your breakpoint?  Type `1' for the first
>     instance, `2' for the second, `A' for all of them:
>     1 <==== user response
> 
>     Breakpoint 1 at 0x8048544: file derivation.cc, line 7.

At that point we may as well automatically set both breakpoints; that's
almost always what the user wants.  Then we can do without the naming
hack.

Coincidentally that's what the entire discussion of 1:N breakpoints
last year was about but no one has had time to implement it.

Note that we'll still get continuous complaints about setting
breakpoints in constructors!  The reason this is hard is that
breakpoints by line number inside the constructor will still get
randomly set on one copy.  Many IDEs will set breakpoints in this
fashion.

-- 
Daniel Jacobowitz

  reply	other threads:[~2004-07-17 14:30 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-07-16 19:59 Michael Elizabeth Chastain
2004-07-16 22:15 ` Jim Blandy
2004-07-17 14:30 ` Eli Zaretskii
2004-07-17 14:54   ` Daniel Jacobowitz [this message]
  -- strict thread matches above, loose matches on Subject: below --
2004-07-18 19:29 Michael Elizabeth Chastain
2004-07-19  3:58 ` Eli Zaretskii
2004-07-17 23:17 Michael Elizabeth Chastain
2004-07-18  5:05 ` Eli Zaretskii
2004-07-18 18:44   ` Daniel Jacobowitz
2004-07-18 19:03     ` Eli Zaretskii
2004-07-19  3:22       ` Daniel Jacobowitz
2004-07-19 14:51         ` Eli Zaretskii
2004-07-17 10:09 Michael Elizabeth Chastain
2004-07-15 13:55 Michael Elizabeth Chastain
2004-07-15 14:09 ` Daniel Jacobowitz
2004-07-16 11:11   ` Eli Zaretskii
2004-07-16 14:27     ` Daniel Jacobowitz
2004-07-17 10:30       ` Eli Zaretskii
2004-07-15 11:31 Michael Elizabeth Chastain
2004-07-16 13:17 ` Roland Zerek
2004-07-15 10:30 Roland Zerek

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20040717142927.GA29310@nevyn.them.org \
    --to=drow@false.org \
    --cc=eliz@gnu.org \
    --cc=gdb@sources.redhat.com \
    --cc=mec.gnu@mindspring.com \
    --cc=rolandz@poczta.fm \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).