[PATCH v5 0/5] Implement the ability to start inferiors with a shell on gdbserver

Sergio Durigan Junior
2017-03-30T01:50:02Z

Hi there,

This is the fifth iteration of the patch series. You can see the last
version here:

<https://sourceware.org/ml/gdb-patches/2017-03/msg00084.html>

This version was made to address several comments made by Pedro
regarding the last two versions of the series. Various things were
changed and improved in this version, including the merge of two
commits (the first two commits of the last version are now the first
commit of this version) and the addition of a C++ preparation commit,
as requested.

Here's what has changed:

- A bunch of new hooks on fork_inferior, which made it easier to get
rid of some of the GDB-specific functions that were being shared
with gdbserver (implemented as placeholders).

- GDB's remote backend is now setting startup-with-shell on the right
place (on extended_remote_create_inferior).

- Got rid of the "ui switching" hack; now this is all done on
postfork_child_hook.

- Wrote more info about the *_update functions on
gdbserver/{linux,lynx}-low.c

- Added more rationale on the non-existing-program.exp testcase.

- Got rid of the inferior_ptid global on gdbserver, which allowed the
deletion of some placeholders (inferior_appeared, current_inferior).

- Update comments on all *_create_inferior functions on gdbserver.

- Improved the code and the comments of handle_v_run, especifically
the part that deals with argument parsing.

- Created a new program_name variable on gdbserver, which makes it
easier to call create_inferior without having to create a copy of
the args vector.

- Got rid of the pre_fork_inferior function, transforming it into the
prefork_hook generic function.

- Constified the first argument of create_inferior (const char
*program).

- Fixed vector iteration on C++ using range-based loop.

- Fixed possible problem with stringify_argv, where it was trying to
erase a char from a string without knowing if the string wasn't
empty.

- Created gdb_startup_inferior so that set_executing gets called
automatically after startup_inferior.

- Improved the entry about the new QStartupWithShell packet on the
documentation.

- Improved the startup-with-shell.exp testcase, which now doesn't
depend on gdbserver and can be run by the native target as well.

Tested, and no regressions found.