Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Pedro Alves <pedro@codesourcery.com>
To: gdb@sourceware.org
Cc: Stefano Sabatini <stefano.sabatini-lala@poste.it>
Subject: Re: pthread_t ids of threads not showed by "thread info"
Date: Fri, 23 Apr 2010 11:50:00 -0000	[thread overview]
Message-ID: <201004231250.34075.pedro@codesourcery.com> (raw)
In-Reply-To: <20100422154404.GB3128@geppetto>

On Thursday 22 April 2010 16:44:04, Stefano Sabatini wrote:
> > (gdb) info threads
> > * 9 Thread 25919  0x0040cc7d in PSafeObject::LockReadOnly (this=0xb6d3d1d8)
> >     at ../common/safecoll.cxx:144
> >   8 Thread 25920  0x00885402 in __kernel_vsyscall ()

For core files, older GDBs printed:

      8 process 25920  0x00885402 in __kernel_vsyscall ()

instead.  I'm thinking that the change so s/process/Thread/ in
corelow.c:core_pid_to_str to default to print "Thread" wasn't
that great.  The idea was that "process" isn't good either,
since now GDB supports multi-process, and so it's also confusing.

What would people say to a change like this (pseudo-patch):

 static char *
 core_pid_to_str (struct target_ops *ops, ptid_t ptid)
 {
   static char buf[64];

   if (core_gdbarch
       && gdbarch_core_pid_to_str_p (core_gdbarch))
     {
       char *ret = gdbarch_core_pid_to_str (core_gdbarch, ptid);
       if (ret != NULL)
 	return ret;
     }

   if (ptid_get_lwp (ptid) == 0)
     xsnprintf (buf, sizeof buf, "<main task>");
   else
-     xsnprintf (buf, sizeof buf, "Thread %ld", ptid_get_lwp (ptid));
+     xsnprintf (buf, sizeof buf, "LWP %ld", ptid_get_lwp (ptid));

   return buf;
 }

That is, default to print "LWP" instead.  

For core files, older GDBs printed:

      8 LWP 25920  0x00885402 in __kernel_vsyscall ()

I think that'll make more sense for the majority of
hosts/targets that support core files.  At least more
than "Thread ".

The gdbarch callback was added specifically for Solaris,
so that we'd print "LWP " there:

char *
sol2_core_pid_to_str (struct gdbarch *gdbarch, ptid_t ptid)
{
  static char buf[80];

  xsnprintf (buf, sizeof buf, "LWP %ld", ptid_get_lwp (ptid));
  return buf;
}

we could get rid of it, and instead register callbacks to
whatever targets/archs want "Thread " instead.  Note that there
are a few targets that do layer a thread_stratum layer
on top of corelow.c (at least OpenBSD, and Solaris'
sol-thread.c), and those are already overriding
core_pid_to_str to print whatever else they want instead,
using the regular target_ops inheritance mechanisms.  I'm
thinking that Cygwin core files would be a case where you
don't have a thread_stratum, but still want "Thread".  These
kinds of targets sounds like the minority, so flipping the
default seems to make sense, and be less confusing to
users.

Opinions?

-- 
Pedro Alves


  parent reply	other threads:[~2010-04-23 11:50 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-22 15:19 Stefano Sabatini
2010-04-22 15:44 ` Stefano Sabatini
2010-04-22 16:59   ` Jan Kratochvil
2010-04-23  7:51     ` Stefano Sabatini
2010-04-23 10:25       ` Jan Kratochvil
2010-04-23 14:21         ` Stefano Sabatini
2010-04-23 14:25           ` Jan Kratochvil
2010-04-23 15:36             ` Stefano Sabatini
2010-04-23 15:46               ` Jan Kratochvil
2010-04-26  8:38                 ` Stefano Sabatini
2010-04-26  9:04                   ` Jan Kratochvil
2010-04-26 11:07                     ` Stefano Sabatini
2010-04-26 11:25                       ` Jan Kratochvil
2010-04-23 14:29           ` Stefano Sabatini
2010-04-23 11:50   ` Pedro Alves [this message]
2010-04-23 12:31     ` Mark Kettenis
2010-04-23 12:47       ` Pedro Alves
2010-04-23 15:37         ` Mark Kettenis
2010-04-23 15:51           ` Pedro Alves
2010-08-04 14:36             ` Pedro Alves
2010-08-04 14:57               ` Mark Kettenis
2010-08-04 15:29                 ` Pedro Alves
2010-08-04 16:53               ` Ulrich Weigand
2010-08-04 17:14                 ` Pedro Alves
2010-08-04 17:40                   ` Pedro Alves
2010-08-04 17:44                     ` Ulrich Weigand
2010-08-04 18:20                       ` Pedro Alves
2010-08-04 18:34                         ` Ulrich Weigand
2010-08-04 20:41                           ` Pedro Alves
2010-08-04 17:45                     ` Ulrich Weigand
2010-04-22 20:52 ` Petr Hluzín
2010-04-22 20:56   ` Daniel Jacobowitz
2010-08-18 14:17 ` Pedro Alves

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=201004231250.34075.pedro@codesourcery.com \
    --to=pedro@codesourcery.com \
    --cc=gdb@sourceware.org \
    --cc=stefano.sabatini-lala@poste.it \
    /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