public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: Pedro Alves <palves@redhat.com>
To: Tom Tromey <tom@tromey.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [RFA v2 16/17] Convert dwarf_expr_context_funcs to methods
Date: Tue, 18 Oct 2016 17:38:00 -0000	[thread overview]
Message-ID: <2d69a217-00ca-a516-8b65-b3d0f0133a03@redhat.com> (raw)
In-Reply-To: <87a8e13gbp.fsf@tromey.com>

On 10/18/2016 03:03 PM, Tom Tromey wrote:
>>>>>> "Pedro" == Pedro Alves <palves@redhat.com> writes:
> 
>>> All I saw was the comment about possibly reducing churn:
>>> https://sourceware.org/ml/gdb-patches/2016-10/msg00208.html
> 
> Pedro> I'm sorry, I had written comments about the parenthesis
> Pedro> thing and also about wondering whether these methods with
> Pedro> internal_error could be pure virtual ('= 0;') instead, and if not,
> Pedro> about adding a small comment mentioning it.
> 
> I think the internal_error thing can't be a pure virtual because there
> are subclasses that do not implement this method.  I could push the
> internal error into the subclasses though.

Hmm.  I guess the actual code smell is that these are internal_errors
instead of normal errors in the first place?  I.e., why are these two
cases internal_errors when the rest of the virtual methods have
defaults that call normal error instead?

Put another way, is there something in the inheritance design that
makes calling these default implementations a gdb bug?   Cases like
"virtual foo() and virtual bar() work in tandem, so if you get to
the default bar(), it means you overrode foo() but forgot bar()" would
be those which I think would be reasonable to internal_error.  I.e.,
clear implementation bugs.

So I'm wondering whether invalid dwarf (i.e., input) or something
like that could trigger these internal errors?

In any case, I see now that the old code internal_errors as well,
so in the name of keeping the patch's scope be converting function
pointer tables to virtual methods, it makes sense to keep the
internal_errors.

So patch is fine as is with the internal_error.  Thanks for the patience.

Thanks,
Pedro Alves

  reply	other threads:[~2016-10-18 17:38 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-13 21:11 [RFA v2 00/17] more C++ Tom Tromey
2016-10-13 21:11 ` [RFA v2 10/17] Replace two xmallocs with unique_ptr Tom Tromey
2016-10-13 22:44   ` Pedro Alves
2016-10-13 21:11 ` [RFA v2 03/17] Use scoped_restore for current_ui Tom Tromey
2016-10-13 22:16   ` Pedro Alves
2016-10-13 21:11 ` [RFA v2 02/17] Use scoped_restore for ui_file Tom Tromey
2016-10-13 22:07   ` Pedro Alves
2016-10-14 21:33     ` Tom Tromey
2016-10-13 21:11 ` [RFA v2 05/17] Change minimal_symbol_reader to store objfile Tom Tromey
2016-10-13 22:21   ` Pedro Alves
2016-10-13 21:11 ` [RFA v2 01/17] Use RAII to save and restore scalars Tom Tromey
2016-10-13 22:03   ` Pedro Alves
2016-10-13 21:11 ` [RFA v2 07/17] Remove make_cleanup_restore_current_ui Tom Tromey
2016-10-13 22:37   ` Pedro Alves
2016-10-13 21:11 ` [RFA v2 11/17] Use gdb::unique_ptr in elf_read_minimal_symbols Tom Tromey
2016-10-13 22:44   ` Pedro Alves
2016-10-13 21:11 ` [RFA v2 14/17] Initial conversion of dwarf_expr_ctx Tom Tromey
2016-10-13 22:54   ` Pedro Alves
2016-10-13 21:11 ` [RFA v2 16/17] Convert dwarf_expr_context_funcs to methods Tom Tromey
2016-10-13 23:05   ` Pedro Alves
2016-10-18  2:50     ` Tom Tromey
2016-10-18 10:51       ` Pedro Alves
2016-10-18 14:55         ` Tom Tromey
2016-10-18 17:38           ` Pedro Alves [this message]
2016-10-19 22:29             ` Tom Tromey
2016-10-20 21:48       ` Tom Tromey
2016-10-20 21:56         ` Pedro Alves
2016-10-28 13:36         ` Pedro Alves
2016-10-31  2:48           ` Tom Tromey
2016-11-01 22:07             ` Tom Tromey
2016-11-02 16:12             ` Pedro Alves
2016-10-13 21:11 ` [RFA v2 06/17] Record minimal symbols directly in reader Tom Tromey
2016-10-13 22:34   ` Pedro Alves
2016-10-14 21:22     ` Tom Tromey
2016-10-20 21:47       ` Tom Tromey
2016-10-20 22:13         ` Pedro Alves
2016-10-13 21:11 ` [RFA v2 12/17] Remove make_cleanup_restore_current_uiout Tom Tromey
2016-10-13 22:49   ` Pedro Alves
2016-10-14 21:30     ` Tom Tromey
2016-10-20 21:46       ` Tom Tromey
2016-10-20 21:57         ` Pedro Alves
2016-10-13 21:11 ` [RFA v2 15/17] Convert DWARF expr functions to methods Tom Tromey
2016-10-13 23:01   ` Pedro Alves
2016-10-20 21:47     ` Tom Tromey
2016-10-20 22:01       ` Pedro Alves
2016-10-13 21:11 ` [RFA v2 08/17] Remove some cleanups in MI Tom Tromey
2016-10-13 22:38   ` Pedro Alves
2016-10-13 21:11 ` [RFA v2 04/17] Introduce minimal_symbol_reader Tom Tromey
2016-10-13 22:20   ` Pedro Alves
2016-10-13 21:13 ` [RFA v2 13/17] Some cleanup removal in dwarf2loc.c Tom Tromey
2016-10-13 22:52   ` Pedro Alves
2016-10-13 21:14 ` [RFA v2 09/17] Change command stats reporting to use class Tom Tromey
2016-10-13 22:43   ` Pedro Alves
2016-10-13 21:18 ` [RFA v2 17/17] Remove last cleanup from captured_main_1 Tom Tromey
2016-10-13 23:13   ` Pedro Alves
2016-10-13 21:39 ` [RFA v2 00/17] more C++ Pedro Alves
2016-10-14 16:26   ` Pedro Alves
2016-10-20 21:49 ` Tom Tromey
2016-10-20 22:27   ` Pedro Alves

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=2d69a217-00ca-a516-8b65-b3d0f0133a03@redhat.com \
    --to=palves@redhat.com \
    --cc=gdb-patches@sourceware.org \
    --cc=tom@tromey.com \
    /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).