From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 94639 invoked by alias); 17 May 2019 10:55:06 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 94622 invoked by uid 89); 17 May 2019 10:55:05 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=AWL,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-Received:2aeb, Cool X-HELO: mail-pl1-f195.google.com Received: from mail-pl1-f195.google.com (HELO mail-pl1-f195.google.com) (209.85.214.195) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 17 May 2019 10:55:04 +0000 Received: by mail-pl1-f195.google.com with SMTP id c5so3180210pll.11 for ; Fri, 17 May 2019 03:55:03 -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=Y7bPtL+BDt3qY4/hRmWAilaTwKGrvpDQSzv3mc1PSmI=; b=EWXe6tCujTfFD4bvUp7VBMEsUIOeN8fJYlD+V5RNKeLjwixTY/YtHjmCOZBao41sCU LWEWRKGoLd/j+MvC8OX2/F9vNKo/vwr0EDePfDig0pfqmkvtEDmnVdJdcNnG162d8EEY BHcasLHNGpdJ4G0UTKCKPBsgQhKe3JGx49FSzC99NxPRcH66eco7YFbO+eNLi8laErvO /UwbL0pTfrRZOH3oTVQ1Wxd0uDk0tVJBV5GNaKsdFfTON4oxm0Yig/5Ttim2TTMP5KnO mU85zUbMX59LhhdtDUklpJsRxSTZy3A+BJqh13R3c9khi6uLdRjcP54NfDRKDCx7VKjO weWw== Return-Path: Received: from localhost ([13.75.109.155]) by smtp.gmail.com with ESMTPSA id q142sm6330790pfc.27.2019.05.17.03.55.00 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 17 May 2019 03:55:01 -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> <87ef4ypif5.fsf@gmail.com> <20190517095941.GA2356@blade.nx> User-agent: mu4e 1.1.0; emacs 27.0.50 From: Amos Bird To: Gary Benson Cc: Eli Zaretskii , gdb-patches@sourceware.org, tom@tromey.com Subject: Re: [PATCH] Add "thread-exited" annotation In-reply-to: <20190517095941.GA2356@blade.nx> Date: Fri, 17 May 2019 10:55:00 -0000 Message-ID: <87sgtdcpux.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; format=flowed X-SW-Source: 2019-05/txt/msg00413.txt.bz2 > Also, Amos, do you have copyright assignment in place? Yup, it's all set. Gary Benson writes: > Amos Bird wrote: >> Thanks. Updated. > > Cool. I'm happy for this to be committed now, but I'm not a > maintainer so I can't approve it. > > Also, Amos, do you have copyright assignment in place? > > Thanks, > Gary > >> 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 >> -- Amos Bird amosbird@gmail.com