From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18403 invoked by alias); 23 Sep 2004 16:13:50 -0000 Mailing-List: contact rda-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Post: List-Help: , Sender: rda-owner@sources.redhat.com Received: (qmail 18391 invoked from network); 23 Sep 2004 16:13:49 -0000 To: Michael Snyder CC: rda@sources.redhat.com Subject: RDA thread-db.c and thread exits / signal killings From: Jim Blandy Date: Thu, 23 Sep 2004 16:13:00 -0000 Message-ID: User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2004-q3/txt/msg00020.txt.bz2 I'm working my way through the logic in rda/unix/thread-db.c. In wait_all_threads, we walk the list of known threads and try to bring them all into the 'waited' state by collecting the SIGSTOP signals they've been sent, and stashing any other signals they've received in the pending_events array. It seems to me that, if more than one thread exits, or is killed by a signal, that information will be lost: select_pending_event will choose one event to report back to GDB, and then send_pending_signals will empty out the pending_events array. Is my reading right? Is this a bug, or is it not necessary to report such things to GDB?