public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
* [PATCH 0/0][REPOST] Exec events in gdbserver on Linux
@ 2014-04-30 19:18 Don Breazeal
  2014-04-30 19:18 ` [PATCH 4/4 v2][REPOST] Non-stop exec tests Don Breazeal
                   ` (9 more replies)
  0 siblings, 10 replies; 33+ messages in thread
From: Don Breazeal @ 2014-04-30 19:18 UTC (permalink / raw)
  To: gdb-patches

[Reposting to eliminate unexpected attachment type.]

This patch implements support for exec events in gdbserver on GNU/Linux.
This is a step towards the "follow fork/exec" item in the local/remote
debugging feature parity project:
(https://sourceware.org/gdb/wiki/LocalRemoteFeatureParity).  Luis had
started work on this last year, and handed it off to me at the end of
January.  (BTW, thanks to Luis for his advice on this, although any
problems with this patch are entirely mine.)

Follow-exec-mode and rerun behave as expected in multiprocess mode (target
extended-remote), where follow-exec-mode maintains the specified inferiors
and rerun runs the last executable file to be exec'd.  Catchpoints for exec
are not implemented in this patch series, since this will be easier to do
once fork and vfork events are also supported.

- Patch 1/4 implements support for the extended ptrace event
  PTRACE_EVENT_EXIT, which is a prerequisite for the exec event support.
- Patch 2/4 implements the exec event support.
- Patch 3/4 adds documentation for the new RSP "Stop Reply" message.
- Patch 4/4 extends the tests gdb.threads/non-ldr-exc-[1-4].exp to test in
  non-stop mode as well as in all-stop mode.

There are a couple of significant aspects to this patch.  First, it uses
the ptrace extension PTRACE_EVENT_EXIT to detect thread exit, in particular
the exit of a thread group leader when a non-leader calls exec.  Use of
this event was necessary due to a race condition in the two-thread case.
It is only used internally; exit events detected this way are not exposed
to the user, and exit processing was changed as little as possible.

Second, it sends a signal to each lwp after an exec event in order to
identify and clean up the lwp entry for the exec'ing thread.  This happens
in the normal course of things for all-stop mode, but in non-stop mode
gdbserver uses SIGSTOP to stop, then resume all of the non-leader threads
to accomplish this.

More detailed explanations of these issues are included in the patch 2/4
email.

My intent is to follow up with implementations of remote fork/vfork events
and associated catchpoints.

Thanks,
--Don

gdb/common/linux-ptrace.c                   |  45 ++++-
gdb/doc/gdb.texinfo                         |   6 +
gdb/gdbserver/linux-low.c                   | 274 +++++++++++++++++++++++++---
gdb/gdbserver/linux-low.h                   |   5 +
gdb/gdbserver/remote-utils.c                |  28 ++-
gdb/remote.c                                |  27 ++-
gdb/testsuite/gdb.threads/non-ldr-exc-1.exp |  15 +-
gdb/testsuite/gdb.threads/non-ldr-exc-2.exp |  15 +-
gdb/testsuite/gdb.threads/non-ldr-exc-3.exp |  15 +-
gdb/testsuite/gdb.threads/non-ldr-exc-4.exp |  15 +-
10 files changed, 395 insertions(+), 50 deletions(-)


^[

^ permalink raw reply	[flat|nested] 33+ messages in thread

end of thread, other threads:[~2014-06-19 15:56 UTC | newest]

Thread overview: 33+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-04-30 19:18 [PATCH 0/0][REPOST] Exec events in gdbserver on Linux Don Breazeal
2014-04-30 19:18 ` [PATCH 4/4 v2][REPOST] Non-stop exec tests Don Breazeal
2014-04-30 19:18 ` [PATCH 1/4][REPOST] Remote Linux ptrace exit events Don Breazeal
2014-05-07 19:40   ` Luis Machado
2014-05-08  5:23   ` Yao Qi
2014-05-09 21:03     ` Breazeal, Don
2014-05-21 15:15   ` Tom Tromey
2014-05-22 17:42     ` Breazeal, Don
2014-04-30 19:18 ` [PATCH 3/4][REPOST] Document RSP support for Linux exec events Don Breazeal
2014-05-08  5:34   ` Yao Qi
2014-04-30 19:18 ` [PATCH 2/4][REPOST] Remote Linux ptrace " Don Breazeal
2014-05-07 20:01   ` Luis Machado
2014-05-09 21:17     ` Breazeal, Don
2014-05-08  5:44   ` Yao Qi
2014-05-21 15:28   ` Tom Tromey
2014-05-21 15:25 ` [PATCH 0/0][REPOST] Exec events in gdbserver on Linux Tom Tromey
2014-05-23 22:49 ` [PATCH 3/4] Document RSP support for Linux exec events Don Breazeal
2014-05-24  7:20   ` Eli Zaretskii
2014-05-27 21:28     ` Breazeal, Don
2014-05-28 14:22       ` Eli Zaretskii
2014-05-23 22:49 ` [PATCH 2/4 v3] Remote Linux ptrace " Don Breazeal
2014-05-23 22:49 ` [PATCH 1/4 v3] Remote Linux ptrace exit events Don Breazeal
2014-05-23 22:49 ` [PATCH 4/4] Non-stop exec tests Don Breazeal
2014-05-26  3:29   ` Doug Evans
2014-05-27 18:31     ` Breazeal, Don
2014-05-23 22:49 ` [PATCH 0/4 v3] Exec events in gdbserver on Linux Don Breazeal
2014-05-26  4:55   ` Doug Evans
2014-05-27 18:49     ` Breazeal, Don
2014-05-27 21:41       ` Breazeal, Don
2014-05-28 18:02         ` Breazeal, Don
2014-06-05 22:06   ` Breazeal, Don
2014-06-06 12:29     ` Luis Machado
2014-06-19 15:56     ` Breazeal, Don

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).