Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Keith Seitz <keiths@redhat.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: gdb-patches@sourceware.org
Subject: Re: [PATCH 9/9] C++ compile support
Date: Fri, 17 Aug 2018 17:51:00 -0000	[thread overview]
Message-ID: <f9ff0c46-b040-4084-40ea-88785cabc3eb@redhat.com> (raw)
In-Reply-To: <83in4hmkpt.fsf@gnu.org>

On 08/11/2018 12:22 AM, Eli Zaretskii wrote:
>> From: Keith Seitz <keiths@redhat.com>
>> Date: Fri, 10 Aug 2018 16:25:34 -0700
>>
>> This initial support has several glaring omissions:
>> - No template support at all
>>   I have follow-on patches for this, but they add much complexity
>>   to this "basic" support.  Consequently, they will be submitted separately.
>> - Cannot print functions
>>   The code template needs tweaking, and I simply haven't gotten to it yet.
>> - So-called "special function" support is not included
>>   Using constructors, destructors, operators, etc will not work. I have
>>   follow-on patches for that, but they require some work because of the
>>   recent churn in symbol searching.
>> - There are several test suite references to "compile/1234" bugs.
>>   I will file bugs and update the test suite's bug references before pushing
>>   these patches.
> 
> Shouldn't these omissions be mentioned somewhere?  Like in NEWS?

To be honest, I was hesitant to even mention this in NEWS at all (yet).
The code is *very* beta and incomplete (as you can see). That's why the
"experimental" moniker. Nonetheless, assuming we want to mention it, I've
changed the entry to:

* GDB now has experimental support for the compilation and injection of
  C++ source code into the inferior.  This beta release does not include
  support for several language features, such as templates, constructors,
  and operators.

> 
>> +* GDB now has experimental support for the compilation and injection of
>> +  C++ source code into the inferior.  This feature requires the GCC C++
>> +  plug-in available since GCC 7.1.
> 
> The last sentence basically means "only on ELF platforms", right?  So
> IMO this limitation should be stated explicitly, lest people get
> excited, and then get disappointed.

I'm not sure how to answer this. That seems like enumerating all the dependencies
of every dependency GDB has (bfd, libiberty, bison, etc). The feature (like the
C compile feature already included) requires the compiler plug-in. Whatever that
plug-in supports is what GDB supports.

Would you like me to include something like: "Currently tested on x86_64
GNU/Linux." That tells readers what is known to work without suggesting
all possible permutations of host/OS that might work [but are untested
AFAIK].

>> +set debug compile-oracle
>> +show debug compile-oracle
>> +  Control the display of debug output about symbol requests from
>> +  the compiler plug-in.
>> +
>> +set debug compile-cplus-types
>> +show debug compile-cplus-types
>> +  Control the display of debug output about C++ type conversion
>> +  in the compile feature.
> 
> I suggest to mention that these commands are only available/have
> effect if the C++ compilation is supported.

Maybe this is better/clearer?

set debug compile-cplus-types
show debug compile-cplus-types
  Control the display of debug output about type conversion in the
  C++ compile feature.  Commands have no effect while compiling for
  other languages.


>> +@anchor{set debug compile-oracle}
>> +@item set debug compile-oracle
>> +@cindex compile oracle debugging info
>> +Turns on or off display of symbol requests from the compiler plug-in
>> +(the ``oracle'').  The default is off.
> 
> @dfn{oracle} should render better.  In any case, why do we call this
> "the oracle"?  In the computing context, "oracle" has connotations
> that we don't necessarily want to encourage, I think.  Why not
> something like "set debug symbol-requests"?

This symbol resolver design is called the "oracle" internally (see also
references to this name in the Wiki page describing the compile project,
https://sourceware.org/gdb/wiki/GCCCompileAndExecute ).

Nonetheless, on second thought, it seems almost nonsensical to have a
special debug flag just for this. So I've removed the option and just
added the "oracle" debug output when the "normal" compile debug flag
is set. WDYT?

>> +Turns on or off the display of C++ type conversion debugging information.
> 
> Please use C@t{++} for C++ in the text, it renders better in the
> printed manual.

Done.

Would you like me to repost this patch?

Keith


  reply	other threads:[~2018-08-17 17:51 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-10 23:25 [PATCH 0/9] C++ Support for Compile Keith Seitz
2018-08-10 23:25 ` [PATCH 2/9] Change `function_symbols' to std::vector Keith Seitz
2018-08-11 14:49   ` Tom Tromey
2018-08-17 17:59     ` Keith Seitz
2018-08-28 17:43       ` Tom Tromey
2018-08-10 23:25 ` [PATCH 3/9] Change `label_symbols' to std::vector in linespec.c structures Keith Seitz
2018-08-11 14:50   ` Tom Tromey
2018-08-10 23:25 ` [PATCH 1/9] Change `file_symtabs' to std::vector Keith Seitz
2018-08-11 14:47   ` Tom Tromey
2018-08-17 17:56     ` Keith Seitz
2018-08-28 17:30       ` Tom Tromey
2018-08-10 23:31 ` [PATCH 7/9] Use block_symbol_d in linespec APIs Keith Seitz
2018-08-11 15:05   ` Tom Tromey
2018-08-17 18:04     ` Keith Seitz
2018-08-10 23:31 ` [PATCH 6/9] Remove VEC definitions from linespec.c Keith Seitz
2018-08-11 15:03   ` Tom Tromey
2018-08-10 23:32 ` [PATCH 9/9] C++ compile support Keith Seitz
2018-08-11  7:22   ` Eli Zaretskii
2018-08-17 17:51     ` Keith Seitz [this message]
2018-08-17 18:57       ` Eli Zaretskii
2018-08-20 17:02         ` Keith Seitz
2018-08-12  0:17   ` Tom Tromey
2018-08-17 18:26     ` Keith Seitz
2018-08-28 17:52       ` Tom Tromey
2018-08-29 22:32         ` Keith Seitz
2021-03-24  1:04   ` Simon Marchi via Gdb-patches
2021-03-24 14:51     ` Keith Seitz via Gdb-patches
2021-03-24 15:06       ` Simon Marchi via Gdb-patches
2021-03-24 20:49         ` Keith Seitz via Gdb-patches
2021-04-01 18:03     ` Tom Tromey
2021-04-01 18:07       ` Luis Machado via Gdb-patches
2021-04-01 19:36       ` Keith Seitz via Gdb-patches
2018-08-10 23:32 ` [PATCH 5/9] Change decode_compound_collector to use std::vector Keith Seitz
2018-08-11 15:02   ` Tom Tromey
2018-08-17 18:04     ` Keith Seitz
2018-08-20  1:20       ` Simon Marchi
2018-08-20 13:28         ` Tom Tromey
2018-08-20 14:03           ` Simon Marchi
2018-08-28 17:46       ` Tom Tromey
2018-08-10 23:32 ` [PATCH 4/9] Change `minimal_symbols' to std::vector in linespec.c structures Keith Seitz
2018-08-11 15:01   ` Tom Tromey
2018-08-17 18:00     ` Keith Seitz
2018-08-28 17:44       ` Tom Tromey
2018-08-10 23:34 ` [PATCH 8/9] Add new search_symbols_multiple API Keith Seitz
2018-08-11 20:49   ` Tom Tromey

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=f9ff0c46-b040-4084-40ea-88785cabc3eb@redhat.com \
    --to=keiths@redhat.com \
    --cc=eliz@gnu.org \
    --cc=gdb-patches@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