From patchwork Thu May 16 14:45:18 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Amos Bird X-Patchwork-Id: 32709 Received: (qmail 67433 invoked by alias); 16 May 2019 14:45:05 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 67414 invoked by uid 89); 16 May 2019 14:45:04 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=BAYES_00, FREEMAIL_FROM, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.1 spammy=HX-Languages-Length:4410, HX-Spam-Relays-External:209.85.214.193, H*RU:209.85.214.193 X-HELO: mail-pl1-f193.google.com Received: from mail-pl1-f193.google.com (HELO mail-pl1-f193.google.com) (209.85.214.193) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 16 May 2019 14:45:02 +0000 Received: by mail-pl1-f193.google.com with SMTP id f12so1733006plt.8 for ; Thu, 16 May 2019 07:45:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=references:user-agent:from:to:cc:subject:in-reply-to:date :message-id:mime-version; bh=JR54Ndnmn6mpbNYv+WGpUhQIpdfA3yQtEnzJtV5/zXU=; b=h8MC+S8SWSmmO78zDrudOY5/h6eKKYSnx+ln0stCuRJNR7ORUR24ArCkFvxCe8iHbp WXdLQ8azu4TYl2yDd3Fv5/Eg3uCc3eDs3TxKRa9WJ4VPdWLtc5acnquCQGaIevCmIdb6 1B/R/uONGBVILHBliLWNjRYiI2CCYlcoQ36a/54Q50TUBPmyRMaAvPrXrOctKA3sNBdh uyLLAtYKxUixj4f1WtRPciyPWHKB+OswrY2rDvDhdsXFd/tRBACquVGBgwHwB4p4njLZ kuUcbeIeR/wVO+LfGrvXqe6XwWS4SDeHTJKeCdcoap8nggZdiUQ9wynOYxfPvSVDPtAg 01dQ== Return-Path: Received: from localhost ([13.75.109.155]) by smtp.gmail.com with ESMTPSA id l63sm9094357pfl.181.2019.05.16.07.44.59 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 16 May 2019 07:45:00 -0700 (PDT) References: <87d0l8pzdz.fsf@gmail.com> <87ef5j33au.fsf@tromey.com> <87ftpzo1wa.fsf@gmail.com> <20190516131419.GA29999@blade.nx> <87ftpepk1l.fsf@gmail.com> <83d0kicvs6.fsf@gnu.org> User-agent: mu4e 1.1.0; emacs 27.0.50 From: Amos Bird To: Eli Zaretskii Cc: gbenson@redhat.com, gdb-patches@sourceware.org, tom@tromey.com Subject: Re: [PATCH] Add "thread-exited" annotation In-reply-to: <83d0kicvs6.fsf@gnu.org> Date: Thu, 16 May 2019 22:45:18 +0800 Message-ID: <87ef4ypif5.fsf@gmail.com> MIME-Version: 1.0 Thanks. Updated. Eli Zaretskii writes: >> From: Amos Bird >> Cc: gdb-patches@sourceware.org, Tom Tromey >> Date: Thu, 16 May 2019 22:10:14 +0800 >> >> +* 'thread-exited' event is now available in the annotations >> interface > > A period at the end of the sentence is missing. > >> +This annotation is issued once for each thread that is exited. > ^^^^^^^^^^^^^^^^^^^^^^^^^^ > "each thread that exits" > > The documentation parts are OK with these 2 nits fixed. > > Thanks. --- Amos Bird amosbird@gmail.com From b6dc912764a0e61e274b9354ca225af4a235a3dd Mon Sep 17 00:00:00 2001 From: Amos Bird Date: Thu, 16 May 2019 22:44:40 +0800 Subject: [PATCH] Add "thread-exit" annotation. --- gdb/ChangeLog | 5 +++++ gdb/NEWS | 2 ++ gdb/annotate.c | 14 ++++++++++++++ gdb/doc/ChangeLog | 5 +++++ gdb/doc/annotate.texinfo | 5 +++++ gdb/testsuite/ChangeLog | 5 +++++ gdb/testsuite/gdb.base/annota1.exp | 9 +++++++++ 7 files changed, 45 insertions(+) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index e0120e7743..849ed30731 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2019-04-26 Amos Bird + + * annotate.c (annotate_thread_exited): Add "thread-exited" + annotation. + 2019-04-25 Keith Seitz PR c++/24367 diff --git a/gdb/NEWS b/gdb/NEWS index 5309a8f923..735d915ec6 100644 --- a/gdb/NEWS +++ b/gdb/NEWS @@ -3,6 +3,8 @@ *** Changes since GDB 8.3 +* 'thread-exited' event is now available in the annotations interface. + * New built-in convenience variables $_gdb_major and $_gdb_minor provide the GDB version. They are handy for conditionally using features available only in or since specific GDB versions, in diff --git a/gdb/annotate.c b/gdb/annotate.c index 97cb4c8855..af804ddd1f 100644 --- a/gdb/annotate.c +++ b/gdb/annotate.c @@ -241,6 +241,19 @@ annotate_thread_changed (void) } } +/* Emit notification on thread exit. */ + +static void +annotate_thread_exited (struct thread_info *t, int silent) +{ + if (annotation_level > 1) + { + printf_filtered(("\n\032\032thread-exited," + "id=\"%d\",group-id=\"i%d\"\n"), + t->global_num, t->inf->num); + } +} + void annotate_field_begin (struct type *type) { @@ -595,4 +608,5 @@ _initialize_annotate (void) gdb::observers::breakpoint_created.attach (breakpoint_changed); gdb::observers::breakpoint_deleted.attach (breakpoint_changed); gdb::observers::breakpoint_modified.attach (breakpoint_changed); + gdb::observers::thread_exit.attach (annotate_thread_exited); } diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index ba152329d7..79b837aac6 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,8 @@ +2019-04-26 Amos Bird + + * annotate.texinfo (Multi-threaded Apps): Add entry for thread-exited + annotation. + 2019-04-22 Pedro Alves * gdb.texinfo (Reverse Execution): Mention and xref process record diff --git a/gdb/doc/annotate.texinfo b/gdb/doc/annotate.texinfo index b85b759f9a..fb7cbf7b77 100644 --- a/gdb/doc/annotate.texinfo +++ b/gdb/doc/annotate.texinfo @@ -836,6 +836,11 @@ The selected thread has changed. This may occur at the request of the user with the @code{thread} command, or as a result of execution, e.g., another thread hits a breakpoint. +@findex thread-exited@r{, annotation} +@item ^Z^Zthread-exited + +This annotation is issued once for each thread that exits. + @end table @node GNU Free Documentation License diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 9b0725a033..d7a9b5611d 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2019-04-26 Amos Bird + + * gdb.base/annota1.exp (thread_switch): Add test for + thread-exited annotation. + 2019-04-25 Keith Seitz PR c++/24367 diff --git a/gdb/testsuite/gdb.base/annota1.exp b/gdb/testsuite/gdb.base/annota1.exp index 5237bc9715..032cd2ecde 100644 --- a/gdb/testsuite/gdb.base/annota1.exp +++ b/gdb/testsuite/gdb.base/annota1.exp @@ -492,8 +492,17 @@ proc thread_switch {} { } } +proc thread_exit {} { + gdb_test_multiple "call (void)pthread_exit()" "thread exit" { + -re ".*\032\032thread-exited.*" { + pass "thread exit" + } + } +} + thread_test thread_switch +thread_exit # restore the original prompt for the rest of the testsuite -- 2.21.0