Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Daniel Jacobowitz <drow@false.org>
Cc: gdb-patches@sourceware.org
Subject: Re: RFC: Allow a wrapper when starting programs
Date: Sat, 09 Feb 2008 08:48:00 -0000	[thread overview]
Message-ID: <u63wysei4.fsf@gnu.org> (raw)
In-Reply-To: <20080208185727.GA30185@caradoc.them.org> (message from Daniel 	Jacobowitz on Fri, 8 Feb 2008 13:57:27 -0500)

> Date: Fri, 8 Feb 2008 13:57:27 -0500
> From: Daniel Jacobowitz <drow@false.org>
> Cc: Eli Zaretskii <eliz@gnu.org>
> 
> This patch allows GDB and gdbserver to use wrapper programs when they
> launch an inferior process.

Thanks!

A few comments on your patch:

> --- NEWS	7 Feb 2008 19:23:10 -0000	1.256
> +++ NEWS	8 Feb 2008 18:46:39 -0000

This part is okay, except:

> +* New features in the GDB remote stub, gdbserver
> +
> +  - AltiVec and SPE registers on PowerPC targets are now accessible.
> +
> +  - Thread debugging is now supported on GNU/Linux targets even when
> +  the libthread_db library is missing.
> +
> +  - The new file transfer commands (remote put, remote get, and remote
> +  delete) are supported with gdbserver.

You are already describing gdbserver changes, so saying that again at
the end of the last sentence is redundant, I think.

> --- fork-child.c	29 Jan 2008 21:11:24 -0000	1.38
> +++ fork-child.c	8 Feb 2008 18:46:39 -0000

Do all supported platform use fork-child to run the inferior?  If not,
those that don't will not have this feature, and this fact should be
reflected in the manual.

> +  if (exec_wrapper)
> +    pending_execs++;

You seem to be assuming that the wrapper is a simple command that
exec's only once.  But in fact the wrapper could be an arbitrarily
complex script that exec's several times, right?  If a single-exec
limitation is something we cannot easily overcome, we must document it
clearly in the manual.

> +void
> +_initialize_fork_child (void)
> +{
> +  add_setshow_filename_cmd ("exec-wrapper", class_run, &exec_wrapper, _("\
> +Set a wrapper for running programs."), _("\
> +Show the wrapper for running programs."), NULL,

That is rather cryptic, IMO.  How about adding a few more words about
what is a wrapper and how it is used?

> +                             The wrapper will run until its first
> +debug trap before @value{GDBN} takes control.
> +
> +On Unix systems, a debug trap (@code{SIGTRAP}) is generated at the
> +@code{execve} system call.  This allows any program which uses
> +@code{execve} to start another program to be used as a wrapper.

This is not detailed enough to be useful to anyone but a GDB hacker
who also happened to read the respective portions of the code in
fork-child.c.  In any case, it left me wondering what is this all
about, and why I, as a GDB user, should care about SIGTRAPs.

IOW, if this is important for the user to know, we should explain the
issue in terms understandable by a GDB user.

> +                                                           The wrapper
> +will run until its first debug trap before @value{GDBN} gains control.
> +
> +On Unix systems, a debug trap (@code{SIGTRAP}) is generated at the
> +@code{execve} system call.  This allows any program which uses
> +@code{execve} to start another program to be used as a wrapper.  For
> +example, you can use @code{env} to pass an environment variable to the
> +debugged program, without setting the variable in @code{gdbserver}'s
> +environment:

Same here.


  reply	other threads:[~2008-02-09  8:48 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-02-08 18:57 Daniel Jacobowitz
2008-02-09  8:48 ` Eli Zaretskii [this message]
2008-02-09 15:48   ` Daniel Jacobowitz
2008-02-09 16:41     ` Eli Zaretskii
2008-02-09 16:53       ` Daniel Jacobowitz
2008-02-09 19:20         ` Doug Evans
2008-02-10  1:15           ` Daniel Jacobowitz
2008-02-11 16:14         ` Daniel Jacobowitz
2008-02-11 19:45           ` Daniel Jacobowitz
2008-02-11 20:30           ` Eli Zaretskii
2008-03-10 23:14             ` Daniel Jacobowitz
2008-02-12 19:46 ` Joel Brobecker

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=u63wysei4.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=drow@false.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