public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* Re: [RFA/stabs reader] Fix v3 duplicate constructors problem
@ 2001-12-04  1:09 Michael Elizabeth Chastain
  2001-12-04  5:27 ` Jason Merrill
  0 siblings, 1 reply; 11+ messages in thread
From: Michael Elizabeth Chastain @ 2001-12-04  1:09 UTC (permalink / raw)
  To: gdb-patches, jason; +Cc: gcc

Jason Merrill writes:
> The thing is, we want the debugger to treat them as the same function, so
> that setting a breakpoint on the signature actually sets one on each and
> the like.

I for one do not want that to happen at all!

There really are two bodies of code in the target program code.
The compiler emits two bodies of code; the linker recognizes two bodies
of code with different names.

Consider this code:

  class C1 { public: C1::C1(); };
  C1::C1 () { foo(); bar(); bletch(); }

Suppose the user sets a breakpoint in foo(), looks at the stack,
and sees the name C1::C1().  They decide they want to read the machine
language instructions for the constructor, so they type "disass C1::C1".
What do you want gdb to do?

I would like gdb to demangle different names differently.  Perhaps:

  (gdb) ptype C1
    ... C1::C1 ...
    ... C1::C1$base ...

... where the first line is for the in-charge constructor, and the second
line is for the not-in-charge constructor.  Then the user can disassemble,
breakpoint, and call whichever function they want (they better know what
they are doing if they call a not-in-charge constructor by hand though).
If they don't know what C1::C1$base is, they can read a document, where
they can learn that each constructor and destructor in the source code is
compiled to multiple object functions in the object code, with different
interfaces and purposes.

As to how this relates onto symbol handling, I don't know.  I just know
that I want names that reflect reality in ptype, disassmble, break,
and backtrace.

Michael C

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2001-12-04 17:43 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20011203154836.A28821@nevyn.them.org>
2001-12-03 13:52 ` [RFA/stabs reader] Fix v3 duplicate constructors problem Jason Merrill
2001-12-03 14:29   ` Daniel Jacobowitz
2001-12-03 14:58     ` Jason Merrill
2001-12-03 15:25       ` Michael Snyder
2001-12-04  8:25         ` Jason Merrill
2001-12-04  8:53           ` Jim Blandy
2001-12-04  9:43             ` Joe Buck
2001-12-04  1:09 Michael Elizabeth Chastain
2001-12-04  5:27 ` Jason Merrill
2001-12-04  7:40   ` Daniel Berlin
2001-12-04  8:58   ` Daniel Jacobowitz

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