From: Michael Eager <eager@eagerm.com>
To: gdb@sourceware.org
Subject: Re: Will therefore GDB utilize C++? Not.
Date: Fri, 06 Apr 2012 15:34:00 -0000 [thread overview]
Message-ID: <4F7F0CEA.5000206@eagerm.com> (raw)
In-Reply-To: <20120406131619.GI27438@adacore.com>
On 04/06/2012 06:16 AM, Joel Brobecker wrote:
>>> I do not recommend that GDB use C++.
>>
>> I agree 100% on all points. I came to the same conclusions 10 years
>> ago. Everything i do now is C, and i only poke with C++ to grab
>> something out of it or to reverse engineer.
>
> I wish we would stop discussing about the language itself, and argue
> the technical points that the pro-C++ camp were bringing up. There are
> a number of issues with GDB's design there were raised, and solutions
> involving the use of C++ were proposed. As far as I know, the anti-C++
> camp has rejected C++ in general based on general and vague arguments,
> rather than argue the specific points that have been brought up. We are
> NOT talking about using ALL of C++, we are talking about using
> a reasonable subset that would allow us to expand a bit what the language
> can do for us.
I'll echo Joel -- complaints about C++ language design don't add much to
the discussion.
I've long been an advocate of C With Classes. I'm less in favor of
using other features in C++, perhaps not so much from the technical concerns,
which I do have, but because gcc provides horrible C++ error messages and gdb
provides horrible C++ debugging. It's been suggested that if gcc/gdb converted
to C++ that both would improve as the developers ate their own dog food.
> And yet, that's exactly what we are doing:
> - unit elaboration;
> - gdbarch/language dispatching
> - exception handling
> - use of unions to emulate polymorphism;
> - etc, etc, etc.
Writing several different versions of object-oriented C to implement
these features doesn't make gdb easier to debug or extend.
> So again, the proposal that was put on the table a long time ago
> was that some specific features of C++ be used in order to simplify
> certain areas of GDB's code. The pro-C++ camps has, in my opinion,
> successfully shown how C++ was going to help. The specific arguments,
> in my opinion, should be brought up again, and those specific arguments
> should be discussed, rather than just discussing generalities about
> how horrible C++ is.
>
>> All it requires is a few more short lines of explanatory design
>> notes scattered through the code and clarity of thought.
In many places, gdb comments and descriptions range from meaningless to
useless. The internals document is far out of date. In many areas, it
is difficult to understand why the code does the odd things it does.
I'm not sure where "clarity of thought" would be applied.
Working in gdb is not easy. It doesn't seem to be getting better.
There are many changes which, IMO, would reverse this trend. One would
be to rewrite the parts which are currently written in object oriented
code with incomplete encapsulation with clear C++ classes and member
functions. Several parts of gdb are overly complex and would benefit
from refactoring and redesign. As parts are converted to C++, perhaps
this would give the opportunity for a long overdue review of the design.
There's been an argument that poorly written C++ code is the only
possible outcome of converting gdb to C++. I don't think that this is
the inevitable result. Developers can write good C or good C++, as
well as poor C or poor C++. Especially with gdb maintainers' concerns
for the quality of C++ code, I would expect that converting gdb to C++
would favor (if not demand) producing good C++ rather than just checking
in anything submitted.
--
Michael Eager eager@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306 650-325-8077
next prev parent reply other threads:[~2012-04-06 15:34 UTC|newest]
Thread overview: 115+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-30 16:14 Will therefore GDB utilize C++ or not? Jan Kratochvil
2012-04-04 20:48 ` Tom Tromey
2012-04-04 21:55 ` Mark Kettenis
2012-04-05 3:31 ` Sergio Durigan Junior
2012-04-05 11:46 ` Phil Muldoon
2012-04-06 0:35 ` Will therefore GDB utilize C++? Not John Gilmore
2012-04-06 1:35 ` Russell Shaw
2012-04-06 13:16 ` Joel Brobecker
2012-04-06 14:43 ` Russell Shaw
2012-04-06 15:34 ` Michael Eager [this message]
2012-04-06 23:32 ` John Gilmore
2012-04-07 1:04 ` Robert Dewar
2012-04-07 1:52 ` Thomas Dineen
2012-04-07 16:54 ` Michael Eager
2012-04-09 23:59 ` Stan Shebs
2012-04-05 0:22 ` Will therefore GDB utilize C++ or not? asmwarrior
2012-04-09 18:41 ` Pedro Alves
2012-04-09 19:05 ` Jan Kratochvil
2012-04-09 19:49 ` Pedro Alves
2012-04-09 20:15 ` Paul Smith
2012-04-12 20:06 ` Daniel Jacobowitz
2012-04-12 21:28 ` Paul_Koning
2012-04-13 0:04 ` Doug Evans
2012-04-18 14:10 ` Pedro Alves
2012-04-18 20:27 ` Tom Tromey
2012-04-18 14:08 ` Pedro Alves
2012-04-21 17:24 ` Daniel Jacobowitz
2012-04-16 6:55 ` Jan Kratochvil
2012-04-18 14:11 ` Pedro Alves
2012-04-18 15:16 ` Jan Kratochvil
2012-04-18 15:28 ` Pedro Alves
2012-04-18 15:54 ` Jan Kratochvil
2012-04-18 16:01 ` Pedro Alves
2012-04-18 16:07 ` Joel Brobecker
2012-04-18 16:13 ` Jan Kratochvil
2012-04-18 16:23 ` Joel Brobecker
2012-04-18 16:31 ` Joel Sherrill
2012-04-18 16:50 ` Pedro Alves
2012-04-18 16:57 ` Joel Brobecker
2012-04-18 17:28 ` Joel Sherrill
2012-04-18 17:40 ` Paul_Koning
2012-04-18 20:37 ` Frank Ch. Eigler
2012-04-18 20:38 ` Paul_Koning
2012-04-18 20:36 ` Tom Tromey
2012-04-18 17:48 ` John Gilmore
2012-04-18 19:07 ` Tom Tromey
2012-04-18 23:10 ` John Gilmore
2012-05-18 18:36 ` Tom Tromey
2012-05-18 18:47 ` Paul_Koning
2012-05-18 19:36 ` Tom Tromey
2012-05-18 19:44 ` Paul_Koning
2012-05-18 20:07 ` Tom Tromey
2012-05-18 20:41 ` Aurelian Melinte
2012-05-18 18:51 ` Lazy CU expansion (Was: Will therefore GDB utilize C++ or not?) Tom Tromey
2012-04-18 20:34 ` Will therefore GDB utilize C++ or not? Tom Tromey
2012-04-18 19:18 ` Will C++ proponents spend 20 minutes to try what they're proposing? John Gilmore
2012-04-18 19:23 ` Jan Kratochvil
2012-04-18 20:40 ` Tom Tromey
2012-04-18 20:56 ` Mike Frysinger
2012-04-18 20:31 ` Will therefore GDB utilize C++ or not? Tom Tromey
2012-04-18 20:25 ` Tom Tromey
2012-05-21 18:11 ` Pedro Alves
2012-05-21 18:36 ` Jan Kratochvil
2012-11-21 20:18 ` Jan Kratochvil
2012-04-10 0:23 ` Yao Qi
2012-04-10 9:47 ` Yao Qi
2012-04-18 20:11 ` Tom Tromey
2012-04-18 20:31 ` Can it really be ok to map GPL'd code into any old process? John Gilmore
2012-04-18 20:36 ` Pedro Alves
2012-04-23 18:03 ` Will therefore GDB utilize C++ or not? Tom Tromey
2012-05-18 19:55 ` Tom Tromey
2012-05-18 21:56 ` Joel Brobecker
2012-05-19 2:17 ` Tom Tromey
2012-05-19 15:21 ` Daniel Jacobowitz
2012-05-19 21:36 ` Joel Brobecker
2012-05-20 12:16 ` Frank Ch. Eigler
2012-05-21 15:56 ` Pedro Alves
2012-05-21 16:15 ` Jan Kratochvil
2012-05-21 17:37 ` Paul_Koning
2012-05-21 17:58 ` Jan Kratochvil
2012-05-22 18:03 ` Paul_Koning
2012-05-21 18:08 ` Pedro Alves
2012-05-21 18:08 ` Tom Tromey
2012-05-21 18:10 ` Jan Kratochvil
2012-05-21 18:54 ` Matt Rice
2012-05-26 15:50 ` Jan Kratochvil
2012-06-02 7:01 ` Russell Shaw
2012-06-02 7:13 ` Jan Kratochvil
2012-06-02 10:47 ` Russell Shaw
2012-06-02 11:10 ` Jan Kratochvil
2012-06-02 11:15 ` Jan Kratochvil
2012-06-02 11:15 ` Russell Shaw
2012-11-22 18:46 ` Jan Kratochvil
2012-11-22 21:42 ` John Gilmore
2012-11-23 15:26 ` Jan Kratochvil
2012-11-27 1:29 ` Stan Shebs
2012-11-27 2:02 ` Paul_Koning
2012-11-27 2:59 ` Stan Shebs
2012-11-27 15:17 ` Paul_Koning
2012-11-27 21:14 ` Tom Tromey
2012-04-09 23:23 ` Stan Shebs
2012-04-18 14:22 ` Pedro Alves
2012-04-18 18:12 ` Stan Shebs
2012-04-18 18:32 ` Paul_Koning
2012-04-18 18:37 ` Pedro Alves
2012-04-19 8:43 ` Yao Qi
2012-12-04 14:17 ` Jan Kratochvil
2012-12-04 14:44 ` Mark Kettenis
2012-12-04 14:52 ` Jan Kratochvil
[not found] ` <CACTLOFof0v6NJe8WemS--Q3iMSXjHciwASxBAED5ki3scaNZuw@mail.gmail.com>
2012-12-07 12:57 ` Jan Kratochvil
2012-12-07 13:25 ` Yao Qi
2012-12-11 6:25 ` Matt Rice
2012-12-13 15:12 ` Jan Kratochvil
2012-12-14 11:03 ` Matt Rice
2012-12-14 12:16 ` Jan Kratochvil
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=4F7F0CEA.5000206@eagerm.com \
--to=eager@eagerm.com \
--cc=gdb@sourceware.org \
/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