From patchwork Thu Dec 10 17:10:11 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pedro Alves X-Patchwork-Id: 9966 Received: (qmail 15304 invoked by alias); 10 Dec 2015 17:10:18 -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 15293 invoked by uid 89); 10 Dec 2015 17:10:18 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.4 required=5.0 tests=AWL, BAYES_00, KAM_LAZY_DOMAIN_SECURITY, SPF_HELO_PASS, T_RP_MATCHES_RCVD autolearn=no version=3.3.2 X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Thu, 10 Dec 2015 17:10:14 +0000 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (Postfix) with ESMTPS id 17DFE347DBB; Thu, 10 Dec 2015 17:10:13 +0000 (UTC) Received: from [127.0.0.1] (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id tBAHAB25032324; Thu, 10 Dec 2015 12:10:12 -0500 Message-ID: <5669B1F3.3010901@redhat.com> Date: Thu, 10 Dec 2015 17:10:11 +0000 From: Pedro Alves User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Eli Zaretskii CC: gdb-patches@sourceware.org Subject: Re: [PATCH] [gdb/doc] There's always a thread References: <1449756899-18063-1-git-send-email-palves@redhat.com> <83twnq9s4d.fsf@gnu.org> In-Reply-To: <83twnq9s4d.fsf@gnu.org> On 12/10/2015 04:37 PM, Eli Zaretskii wrote: >> From: Pedro Alves >> Date: Thu, 10 Dec 2015 14:14:59 +0000 >> >> This warning is a few years out of date -- there's always a thread >> nowadays. >> >> gdb/doc/ChangeLog: >> >> * gdb.texinfo (Threads): Replace warning with explanation/example >> about single-threaded programs. > > This is OK, but your particular wording makes it sound like systems > that have no threading libraries at all are not covered by the > description. How about not mentioning the threading library and the > rest of confusing details, and instead just talk about single-threaded > programs? Let's try again then. I was trying to explain things to the audience that might go "OK, but the "single" in single-threaded already implies there's one thread. What about non-threaded programs? I mean, those that don't link with -lpthread, even?" What about this version that follow along your suggestion, but says "not multi-threaded" instead? From 18e418498d3199d64d501d1ec92eabec85fb510d Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Thu, 10 Dec 2015 12:54:50 +0000 Subject: [PATCH] [gdb/doc] There's always a thread This warning is a few years out of date -- there's always a thread nowadays. gdb/doc/ChangeLog: * gdb.texinfo (Threads): Replace warning with explanation about single-threaded programs. --- gdb/doc/gdb.texinfo | 22 ++++------------------ 1 file changed, 4 insertions(+), 18 deletions(-) diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index e8b419c..bb68e21 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -2844,24 +2844,6 @@ the user specify which @code{libthread_db} to use if the default choice isn't compatible with the program. @end itemize -@quotation -@emph{Warning:} These facilities are not yet available on every -@value{GDBN} configuration where the operating system supports threads. -If your @value{GDBN} does not support threads, these commands have no -effect. For example, a system without thread support shows no output -from @samp{info threads}, and always rejects the @code{thread} command, -like this: - -@smallexample -(@value{GDBP}) info threads -(@value{GDBP}) thread 1 -Thread ID 1 not known. Use the "info threads" command to -see the IDs of currently known threads. -@end smallexample -@c FIXME to implementors: how hard would it be to say "sorry, this GDB -@c doesn't support threads"? -@end quotation - @cindex focus of debugging @cindex current thread The @value{GDBN} thread debugging facility allows you to observe all @@ -2903,6 +2885,10 @@ further qualifier. For debugging purposes, @value{GDBN} associates its own thread number---always a single integer---with each thread in your program. +From @value{GDBN}'s perspective, a process always has at least one +thread. In other words, @value{GDBN} assigns a thread number to the +program's ``main thread'' even if the program is not multi-threaded. + @table @code @kindex info threads @item info threads @r{[}@var{id}@dots{}@r{]}