From: Nick Roberts <nickrob@snap.net.nz>
To: Daniel Jacobowitz <drow@false.org>
Cc: gdb@sources.redhat.com
Subject: Re: Merge of nickrob-async-20060513 to mainline?
Date: Wed, 30 Aug 2006 21:34:00 -0000 [thread overview]
Message-ID: <17654.994.815362.897653@kahikatea.snap.net.nz> (raw)
In-Reply-To: <20060830040113.GA8257@nevyn.them.org>
> Just generate the diff between your mergepoint and branch, and then
> pipe it to diffstat, assuming you've got it installed.
Doing:
cvs diff -r nickrob-async-20060828-mergepoint gdb | diffstat
from the src directory gives the output below.
> Well, I meant from an internals perspective - like, a patch just
> summarizing the interface changes, if the whole patch is too big to
> post at once.
Instead of GDB waiting for the enferior to stop directly, it creates a signal
thread to do that. This means that the main thread can continue to process the
event loop. When the inferior does stop, the signal thread writes to a file
which GDB detects through handle_file_event in the event loop. It then calls
inferior_event_handler.
> > Also it still uses pthreads. You said previously that it should be done
> > in one process and, following a remark from Jim Ingham, that ptrace is
> > non-blocking. AFAICS the problem is that wait *is* blocking and I can't
> > see of a way to deal with that without using another thread.
>
> Ah, but wait is non-blocking. You have to (A) use WNOHANG, and (B) be
> careful to handle asynchronous SIGCHLD events. It's not especially
> difficult, I don't think, but the async event loop in gdb has always
> confused me; we'll have to figure out how to gather up sigchld/wait
> events.
The manpage just says:
WNOHANG
return immediately if no child has exited.
but what value does it return with? Does GDB ignore SIGCHLD events so it
can detect state changes through wait?
--
Nick http://www.inet.net.nz/~nickrob
New files:
gdb/PROBLEMS.async
gdb/README.async
gdb/TODO.async
gdb/async-nat-inferior.c
gdb/async-nat-inferior.h
gdb/async-nat-sigthread.c
gdb/async-nat-sigthread.h
Makefile.in | 13
gdb-mi.el | 2129 ++++++++++++++++++++++++--
gdb/ChangeLog | 3645 +--------------------------------------------
gdb/cli-out.c | 12
gdb/cli-out.h | 1
gdb/cli/cli-interp.c | 83 -
gdb/config/i386/nm-linux.h | 3
gdb/defs.h | 11
gdb/event-loop.c | 72
gdb/event-loop.h | 9
gdb/event-top.c | 93 +
gdb/event-top.h | 2
gdb/exec.c | 52
gdb/i386-linux-nat.c | 21
gdb/inf-child.c | 1
gdb/inf-loop.c | 46
gdb/inf-ptrace.c | 38
gdb/infcmd.c | 9
gdb/infrun.c | 26
gdb/interps.c | 40
gdb/interps.h | 3
gdb/linux-nat.c | 747 ++++-----
gdb/linux-thread-db.c | 4
gdb/main.c | 13
gdb/mi/mi-interp.c | 82 -
gdb/mi/mi-main.c | 371 ++++
gdb/mi/mi-main.h | 11
gdb/remote.c | 12
gdb/target.c | 31
gdb/target.h | 16
gdb/top.c | 25
gdb/tui/tui-hooks.c | 4
gdb/version.in | 2
gdb/wrapper.h | 2
linux.mh | 7
35 files changed, 3494 insertions(+), 4142 deletions(-)
next prev parent reply other threads:[~2006-08-30 21:34 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-08-30 2:27 Nick Roberts
2006-08-30 2:33 ` Daniel Jacobowitz
2006-08-30 3:21 ` Nick Roberts
2006-08-30 4:01 ` Daniel Jacobowitz
2006-08-30 12:31 ` Eli Zaretskii
2006-08-30 21:34 ` Nick Roberts [this message]
2006-08-30 21:43 ` Daniel Jacobowitz
2006-08-30 23:45 ` Nick Roberts
2006-09-26 8:41 ` Nick Roberts
2006-09-26 12:38 ` Daniel Jacobowitz
2006-09-26 22:12 ` Nick Roberts
2006-09-26 22:24 ` Daniel Jacobowitz
2006-09-26 23:40 ` Nick Roberts
2006-09-29 1:50 ` Nick Roberts
2006-10-06 0:53 ` Nick Roberts
2006-10-06 1:26 ` Daniel Jacobowitz
2006-10-06 2:13 ` Nick Roberts
2006-10-06 3:24 ` Daniel Jacobowitz
2006-10-08 3:46 ` Nick Roberts
2006-10-09 18:00 ` async implies sync, was " Michael Snyder
2006-10-09 20:28 ` async implies sync Nick Roberts
2006-08-31 21:03 ` Merge of nickrob-async-20060513 to mainline? Mark Kettenis
2006-08-31 21:49 ` Nick Roberts
2006-08-31 22:29 ` Daniel Jacobowitz
2006-08-31 22:40 ` Nick Roberts
2006-08-31 22:53 ` Michael Snyder
2006-08-31 23:33 ` Nick Roberts
2006-08-31 23:37 ` Daniel Jacobowitz
2006-08-31 23:59 ` Jim Ingham
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=17654.994.815362.897653@kahikatea.snap.net.nz \
--to=nickrob@snap.net.nz \
--cc=drow@false.org \
--cc=gdb@sources.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