From: Pat Pannuto <pat.pannuto@gmail.com>
To: Ricard Wanderlof <ricard.wanderlof@axis.com>
Cc: "gdb-patches@sourceware.org" <gdb-patches@sourceware.org>
Subject: Re: [PATCH] Print thread name when executing thread commands
Date: Wed, 18 Sep 2013 18:37:00 -0000 [thread overview]
Message-ID: <CA+Yp1NUY9CWW3L7U8D-hj7q4RLfgxJB9g4-YdDrF+US3=nfdsg@mail.gmail.com> (raw)
In-Reply-To: <alpine.DEB.2.00.1309180856200.2394@lnxricardw.se.axis.com>
[-- Attachment #1: Type: text/plain, Size: 3921 bytes --]
On Wed, Sep 18, 2013 at 3:04 AM, Ricard Wanderlof
<ricard.wanderlof@axis.com> wrote:
>
> On Wed, 18 Sep 2013, Pat Pannuto wrote:
>
>> Currently the thread family of commands only prints the thread ID and
>> PID. GDB also has access to the thread's name, which is often an easier
>> way of quickly identifying a thread. This simple patch uses the same
>> mechanism as `info threads' to get the name of a thread and add it to
>> the thread identifier line when it's printed.
>>
>> I wrapped the name in []'s to offset it and make it visually distinct
>> from the ()'s that wrap the other thread information. I'm not at all
>> attached to this look, just looked best to me.
>>
>> Diff should be from current cvs. This is my first patch to GDB, if I
>> messed something up don't hesitate to yell at me.
>
>
> I'm fairly new here too so maybe I shouldn't say too much, but supplying the
> patch inline (including the ChangeLog entry) in the post makes it much
> easier to comment on it. I still like adding it as an attachement lest the
> mail program messes up the formatting so it doesn't apply.
>
Done.
> My initial comment is that the ChangeLog format requires that it should be
> more specific regarding which functions have been modified. One should be
> able to grep for the function name in the ChangeLog. Something like
>
> 2013-09-18 Pat Pannuto <pat.pannuto@gmail.com>
>
> * thread.c (thread_apply_all_command, thread_apply_command):
> Print thread name as well as ID number and PID.
>
Makes sense. Updated.
> In the code, there was a 'char *name' in one place, but 'char* name' in
> another. Looking quickly, the indentation of multiple-line statements looked
> inconsistent in some places too.
I fixed the misplaced *. As for the spacing, it follows the spacing of
the lines around them AFAICT.
>
> As for the functionality itself, I'm not in a position to approve but I
> think it's a good idea. It's annoying just to get the thread id when there's
> more information available. I don't know if there are any caveats.
>
> /Ricard
Updated ChangeLog, diff:
$ cat print_thread_names.ChangeLog
2013-09-18 Pat Pannuto <pat.pannuto@gmail.com>
* thread.c (thread_apply_all_command, thread_apply_command):
Print thread name as well as ID number and PID.
$ cat print_thread_names.diff
Index: gdb/thread.c
===================================================================
RCS file: /cvs/src/src/gdb/thread.c,v
retrieving revision 1.157
diff -u -p -r1.157 thread.c
--- gdb/thread.c 17 Sep 2013 18:26:39 -0000 1.157
+++ gdb/thread.c 18 Sep 2013 18:31:15 -0000
@@ -1255,10 +1255,14 @@ thread_apply_all_command (char *cmd, int
for (k = 0; k != i; k++)
if (thread_alive (tp_array[k]))
{
+ char *name;
switch_to_thread (tp_array[k]->ptid);
- printf_filtered (_("\nThread %d (%s):\n"),
+ name = tp_array[k]->name ? tp_array[k]->name
+ : target_thread_name (tp_array[k]);
+ printf_filtered (_("\nThread %d (%s) [%s]:\n"),
tp_array[k]->num,
- target_pid_to_str (inferior_ptid));
+ target_pid_to_str (inferior_ptid),
+ name);
execute_command (cmd, from_tty);
/* Restore exact command used previously. */
@@ -1308,10 +1312,12 @@ thread_apply_command (char *tidlist, int
warning (_("Thread %d has terminated."), start);
else
{
+ char *name;
switch_to_thread (tp->ptid);
- printf_filtered (_("\nThread %d (%s):\n"), tp->num,
- target_pid_to_str (inferior_ptid));
+ name = tp->name ? tp->name : target_thread_name (tp);
+ printf_filtered (_("\nThread %d (%s) [%s]:\n"), tp->num,
+ target_pid_to_str (inferior_ptid), name);
execute_command (cmd, from_tty);
/* Restore exact command used previously. */
[-- Attachment #2: print_thread_names.ChangeLog --]
[-- Type: application/octet-stream, Size: 161 bytes --]
2013-09-18 Pat Pannuto <pat.pannuto@gmail.com>
* thread.c (thread_apply_all_command, thread_apply_command):
Print thread name as well as ID number and PID.
[-- Attachment #3: print_thread_names.diff --]
[-- Type: application/octet-stream, Size: 1513 bytes --]
Index: gdb/thread.c
===================================================================
RCS file: /cvs/src/src/gdb/thread.c,v
retrieving revision 1.157
diff -u -p -r1.157 thread.c
--- gdb/thread.c 17 Sep 2013 18:26:39 -0000 1.157
+++ gdb/thread.c 18 Sep 2013 18:31:15 -0000
@@ -1255,10 +1255,14 @@ thread_apply_all_command (char *cmd, int
for (k = 0; k != i; k++)
if (thread_alive (tp_array[k]))
{
+ char *name;
switch_to_thread (tp_array[k]->ptid);
- printf_filtered (_("\nThread %d (%s):\n"),
+ name = tp_array[k]->name ? tp_array[k]->name
+ : target_thread_name (tp_array[k]);
+ printf_filtered (_("\nThread %d (%s) [%s]:\n"),
tp_array[k]->num,
- target_pid_to_str (inferior_ptid));
+ target_pid_to_str (inferior_ptid),
+ name);
execute_command (cmd, from_tty);
/* Restore exact command used previously. */
@@ -1308,10 +1312,12 @@ thread_apply_command (char *tidlist, int
warning (_("Thread %d has terminated."), start);
else
{
+ char *name;
switch_to_thread (tp->ptid);
- printf_filtered (_("\nThread %d (%s):\n"), tp->num,
- target_pid_to_str (inferior_ptid));
+ name = tp->name ? tp->name : target_thread_name (tp);
+ printf_filtered (_("\nThread %d (%s) [%s]:\n"), tp->num,
+ target_pid_to_str (inferior_ptid), name);
execute_command (cmd, from_tty);
/* Restore exact command used previously. */
next prev parent reply other threads:[~2013-09-18 18:37 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-18 6:50 Pat Pannuto
2013-09-18 7:04 ` Ricard Wanderlof
2013-09-18 18:37 ` Pat Pannuto [this message]
2013-09-23 12:18 ` Agovic, Sanimir
2013-09-23 16:33 ` Pat Pannuto
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='CA+Yp1NUY9CWW3L7U8D-hj7q4RLfgxJB9g4-YdDrF+US3=nfdsg@mail.gmail.com' \
--to=pat.pannuto@gmail.com \
--cc=gdb-patches@sourceware.org \
--cc=ricard.wanderlof@axis.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