Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Phil Muldoon <pmuldoon@redhat.com>
Cc: gdb-patches@sourceware.org, tromey@redhat.com
Subject: Re: (Doc ping [for news and manual]) --  [PATCH 14/14] the "compile" command
Date: Fri, 20 Jun 2014 09:42:00 -0000	[thread overview]
Message-ID: <837g4bsys6.fsf@gnu.org> (raw)
In-Reply-To: <53A3FC20.4030408@redhat.com>

> Date: Fri, 20 Jun 2014 10:17:20 +0100
> From: Phil Muldoon <pmuldoon@redhat.com>
> CC: gdb-patches@sourceware.org, tromey@redhat.com
> 
> >> +@value{GDBN}, or the compiler does not support this feature
> >
> > I think it would be good to say here which compiler(s) in what
> > version(s) started supporting this feature.
> 
> We actually don't have one yet.  That will change soon. The GCC
> changes are being reviewed now (this project is a cross GCC/GDB
> project).  Once there is a released version number associated with a
> GCC version, I will add a "since GCC version ...".

Aren't there plans in place to make this part of a known GCC version,
or maybe a branch where these changes are being made is already slated
to be included in some known version?  If so, please state that
version; it can be changed later if plans change or life intervenes.

But even saying it's a GCC feature is already much more than we tell
now.

> >> +compiles and links successfully, @value{GDBN} will load the object-code
> >> +emitted, and execute it within the context of the currently selected
> >> +inferior.
> >
> > When you say "and execute it", you don't mean right away, yes?
> > Because that's what the text conveys.  Will the execution commence
> > immediately, or only when the program counter gets to this code?
> 
> Yes right away.  The object code is loaded and placed in a dummy frame
> and executed immediately.

Then I guess "compile" is a misleading name.

> >> +When the language in @value{GDBN} is set to @samp{C}, the compiler will
> >> +attempt to compile the source code with a @samp{C} compiler.  The source
> >
> > This begs the question: how will GDB know which compiler to invoke and
> > by what name?
> 
> GDB invokes the GCC plugin which deals with this kind of housekeeping.
> GDB loads libcc1.so and calls the exported functions in that library.

That's not what I meant.  Suppose I have 2 compilers installed, one
called 'gcc', the other 'gcc472'.  (They could also be in different
directories, even not on PATH.)  The program I'm debugging was
compiled with gcc472.  How will GDB know to invoke that executable?
Also, how would it know the command-line arguments required to produce
a code that will work well with the rest of the program being debugged
(the code I compile can call functions in the program, right?)?

If the wrong compiler or the wrong switches will be used, the result
might be crashes or other surprises.

> So from a GDB point of view, we don't care how the compiler is
> invoked, or on the selection of the compiler (we'll, we do care, but
> we trust in the GCC plugin to do the right thing).

The GCC plugin is part of the compiler.  What if I have more than one?

> > Can the compile command access registers?
> 
> There's no definitive answer to this question.  "It depends" is the
> best answer I can give. If the language the compile command is
> compiling allows direct register access then yes, otherwise no.

But GDB knows how to access registers regardless of the language.  Why
cannot the compiled code use those facilities?  It sounds like a
limitation, especially when the program being debugged was compiled
with optimizations.


  reply	other threads:[~2014-06-20  9:42 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-16 15:26 [PATCH 00/14] let gdb reuse gcc's C compiler Tom Tromey
2014-05-16 15:26 ` [PATCH 03/14] add some missing ops to DWARF assembler Tom Tromey
2014-05-16 15:26 ` [PATCH 10/14] make dwarf_expr_frame_base_1 public Tom Tromey
2014-05-16 15:26 ` [PATCH 07/14] add infcall_mmap and gcc_target_options gdbarch methods Tom Tromey
2014-05-19  6:13   ` Yao Qi
2014-05-19  6:41     ` Jan Kratochvil
2014-05-19  6:47       ` Jan Kratochvil
2014-05-19  7:42       ` Yao Qi
2014-05-19  8:26         ` Agovic, Sanimir
2014-05-19 11:15           ` Jan Kratochvil
2014-05-16 15:26 ` [PATCH 01/14] introduce ui_file_write_for_put Tom Tromey
2014-05-16 15:26 ` [PATCH 02/14] add gcc/gdb interface files Tom Tromey
2014-05-19  8:06   ` Yao Qi
2014-05-19 13:53     ` Tom Tromey
2014-05-16 15:26 ` [PATCH 08/14] introduce call_function_by_hand_dummy Tom Tromey
2014-05-16 15:27 ` [PATCH 14/14] the "compile" command Tom Tromey
2014-06-16  9:55   ` (Doc ping [for news and manual]) -- " Phil Muldoon
2014-06-16 15:25     ` Eli Zaretskii
2014-06-20  9:17       ` Phil Muldoon
2014-06-20  9:42         ` Eli Zaretskii [this message]
2014-06-20 10:01           ` Phil Muldoon
2014-06-20 12:37             ` Eli Zaretskii
2014-06-20 14:42             ` Tom Tromey
2014-06-20 19:00               ` Eli Zaretskii
2014-06-21  7:32                 ` Eli Zaretskii
2014-05-16 15:41 ` [PATCH 05/14] change how the CLI handles comments Tom Tromey
2014-05-18 23:26   ` Doug Evans
2014-05-19 14:07     ` Phil Muldoon
2014-06-03  7:04       ` Doug Evans
2014-05-16 15:43 ` [PATCH 12/14] add linux_infcall_mmap Tom Tromey
2014-05-16 15:43 ` [PATCH 09/14] split dwarf2_fetch_cfa_info from dwarf2_compile_expr_to_ax Tom Tromey
2014-05-16 15:43 ` [PATCH 13/14] add s390_gcc_target_options Tom Tromey
2014-05-16 15:56 ` [PATCH 04/14] add make_unqualified_type Tom Tromey
2014-05-16 16:18 ` [PATCH 06/14] add dummy frame destructor Tom Tromey
2014-05-16 16:18 ` [PATCH 11/14] export dwarf2_reg_to_regnum_or_error 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=837g4bsys6.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=gdb-patches@sourceware.org \
    --cc=pmuldoon@redhat.com \
    --cc=tromey@redhat.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