From: Michael Snyder <msnyder@cygnus.com>
To: gdb-patches@sources.redhat.com
Subject: [PATCH]: linux and zombie threads
Date: Tue, 22 May 2001 17:07:00 -0000 [thread overview]
Message-ID: <3B0AFF44.43872CA1@cygnus.com> (raw)
Mark -- these changes prepare the way for a libthread_db change
that will allow gdb to recognize zombie threads.
2001-05-22 Michael Snyder <msnyder@redhat.com>
* thread-db.c: Allow for defunct zombie threads.
(attach_thread): Do not attempt to attach zombie thread.
(thread_db_thread_alive): Return false for defunct zombie thread.
(find_new_threads_callback): Don't add defunct zombie thread to list.
Index: thread-db.c
===================================================================
RCS file: /cvs/src/src/gdb/thread-db.c,v
retrieving revision 1.13
diff -c -3 -p -r1.13 thread-db.c
*** thread-db.c 2001/05/15 00:03:36 1.13
--- thread-db.c 2001/05/23 00:05:41
*************** attach_thread (ptid_t ptid, const td_thr
*** 573,578 ****
--- 573,581 ----
tp->private = xmalloc (sizeof (struct private_thread_info));
tp->private->lwpid = ti_p->ti_lid;
+ if (ti_p->ti_state == TD_THR_UNKNOWN)
+ return;/* A zombie thread that's been joined -- do not attach. */
+
/* Under Linux, we have to attach to each and every thread. */
#ifdef ATTACH_LWP
ATTACH_LWP (BUILD_LWP (ti_p->ti_lid, GET_PID (ptid)), 0);
*************** thread_db_mourn_inferior (void)
*** 894,904 ****
static int
thread_db_thread_alive (ptid_t ptid)
{
if (is_thread (ptid))
{
- td_thrhandle_t th;
- td_err_e err;
-
err = td_ta_map_id2thr_p (thread_agent, GET_THREAD (ptid), &th);
if (err != TD_OK)
return 0;
--- 897,908 ----
static int
thread_db_thread_alive (ptid_t ptid)
{
+ td_thrhandle_t th;
+ td_thrinfo_t ti;
+ td_err_e err;
+
if (is_thread (ptid))
{
err = td_ta_map_id2thr_p (thread_agent, GET_THREAD (ptid), &th);
if (err != TD_OK)
return 0;
*************** thread_db_thread_alive (ptid_t ptid)
*** 907,912 ****
--- 911,923 ----
if (err != TD_OK)
return 0;
+ err = td_thr_get_info_p (&th, &ti);
+ if (err != TD_OK)
+ return 0;
+
+ if (ti.ti_state == TD_THR_UNKNOWN)
+ return 0; /* A zombie thread that's been joined. */
+
return 1;
}
*************** find_new_threads_callback (const td_thrh
*** 926,931 ****
--- 937,945 ----
err = td_thr_get_info_p (th_p, &ti);
if (err != TD_OK)
error ("Cannot get thread info: %s", thread_db_err_str (err));
+
+ if (ti.ti_state == TD_THR_UNKNOWN)
+ return 0; /* A zombie that's been reaped -- ignore. */
ptid = BUILD_THREAD (ti.ti_tid, GET_PID (inferior_ptid));
From kevinb@cygnus.com Tue May 22 17:53:00 2001
From: Kevin Buettner <kevinb@cygnus.com>
To: Jim Blandy <jimb@cygnus.com>
Cc: gdb-patches@sources.redhat.com
Subject: Re: [PATCH RFA #2] breakpoint.c: More check_duplicates() changes
Date: Tue, 22 May 2001 17:53:00 -0000
Message-id: <1010523005321.ZM29277@ocotillo.lan>
References: <1010512223535.ZM30908@ocotillo.lan> <npr8xh0xv9.fsf@zwingli.cygnus.com> <1010522235055.ZM29150@ocotillo.lan> <kevinb@cygnus.com>
X-SW-Source: 2001-05/msg00424.html
Content-length: 216
On May 22, 4:50pm, Kevin Buettner wrote:
> * breakpoint.c (breakpoint_address_is_meaningful): New function.
> (check_duplicates): Don't compare non-meaningful addresses.
I've just committed this change.
Kevin
next reply other threads:[~2001-05-22 17:07 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-05-22 17:07 Michael Snyder [this message]
2001-05-23 4:49 ` Mark Kettenis
2001-05-23 19:14 ` Michael Snyder
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=3B0AFF44.43872CA1@cygnus.com \
--to=msnyder@cygnus.com \
--cc=gdb-patches@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