Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Pedro Alves <palves@redhat.com>
Cc: gnu@toad.com, mark.kettenis@xs4all.nl, brobecker@adacore.com,
	gdb@sourceware.org
Subject: Re: Time to expand "Program received signal" ?
Date: Thu, 15 Nov 2012 19:07:00 -0000	[thread overview]
Message-ID: <837gpmu1k5.fsf@gnu.org> (raw)
In-Reply-To: <50A5340B.1000800@redhat.com>

> Date: Thu, 15 Nov 2012 18:27:23 +0000
> From: Pedro Alves <palves@redhat.com>
> CC: gnu@toad.com, mark.kettenis@xs4all.nl, brobecker@adacore.com,
>         gdb@sourceware.org
> 
> > Doesn't GDB already know whether some threading library is linked into
> > the program?  If it does, then it knows whether another thread is
> > possible or not.
> 
> In some cases yes.  But in general, no.  Most importantly, it doesn't
> in the case people could care the most, which is remote debugging (of
> random bare metal targets and RTOSs).

That's just too bad.

> >> Then, if you have two inferiors, each of them is non-threaded, saying
> >> "main thread" still doesn't tell you which of the inferiors got the
> >> signal.
> > 
> > Neither does "thread 1", AFAIU.
> 
> It does.  The number space of threads is the same for all inferiors.
> There's only one thread 1.

Which is even worse: now I still cannot know which inferior got the
signal, and in addition I cannot even know which thread belongs to
what inferior.

> Thread 1 received signal SIGFOO
> Thread 2 received signal SIGFOO
> 
> Those would be different inferiors.

Or 2 threads from the same inferior getting thread-specific signals.

> >> It makes no sense to me to have "thread apply all FOO" do nothing
> >> for non-threaded inferiors.
> > 
> > No one said it should do nothing.  "Main thread" implies there _is_ a
> > thread.
> 
> Yes, and my point is, if people have no problem in calling these special
> cases single-threaded (where single implies more than zero), and if
> as you say, there _is_ a thread, then the discussion we're having
> of whether to say "Thread 1 received ..." is a bit silly.

It's not silly, because these are two different use cases.  In one use
case, the _user_ types a thread-related command.  In the other, _GDB_
talks about threads in the context of a single-threaded program.  The
former case cannot possibly cause user confusion, because it was the
user who mentioned threads in the first place.

> Either we assume non-threaded == single-threaded, and admit that in
> that case non-threaded inferiors always have at least one thread, or
> we don't, and "thread apply all " should not apply to non-threaded
> inferiors.  As you called it, it's a matter of self-consistency.

The OP's concern was about the UI, not about GDB's own internal
consistency.

> >> E.g., this allows things like "b foo thread 1" to refer to the
> >> main "thread" of a non-threaded program, even if it becomes
> >> threaded by a later dlopen.
> > 
> > Who said that the main thread is necessarily thread 1?  You cannot
> > count on that.
> 
> I can, for non-threaded inferiors, which was my example.  In that
> case, you either count 0 threads, or 1 thread, depending on calling
> it non-threaded, or single-threaded.  But you can't ever have thread
> N>1 before the inferior becomes multi-threaded (say, loads a threading
> library).

You are missing the point, I think.  Again, the issue is not how GDB
does its internal bookkeeping of threads.  The issue is how to present
that to the user of a single-threaded program who might be confused to
hear anything about threads, because she didn't start any.


  reply	other threads:[~2012-11-15 19:07 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-12 18:27 Pedro Alves
2012-11-13 16:25 ` Joel Brobecker
2012-11-13 16:40   ` Mark Kettenis
2012-11-13 17:22     ` Pedro Alves
2012-11-13 22:40       ` John Gilmore
2012-11-14 10:26         ` Pedro Alves
2012-11-14 19:54           ` John Gilmore
2012-11-15 10:36             ` Pedro Alves
2012-11-15 16:58               ` Eli Zaretskii
2012-11-15 17:21                 ` Pedro Alves
2012-11-15 17:51                   ` Joel Brobecker
2012-11-15 18:16                   ` Eli Zaretskii
2012-11-15 18:27                     ` Pedro Alves
2012-11-15 19:07                       ` Eli Zaretskii [this message]
2012-11-15 20:33                         ` Pedro Alves
2012-11-15 20:58                           ` Eli Zaretskii
2012-11-15 18:27                     ` Paul_Koning
2012-11-15 19:27         ` Tom Tromey
2012-11-15 22:21           ` John Gilmore
2012-11-15 22:27             ` Paul_Koning
2012-11-16  0:22               ` John Gilmore
2012-11-16  8:25               ` Eli Zaretskii
2012-11-13 17:23     ` Joel Brobecker

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=837gpmu1k5.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=brobecker@adacore.com \
    --cc=gdb@sourceware.org \
    --cc=gnu@toad.com \
    --cc=mark.kettenis@xs4all.nl \
    --cc=palves@redhat.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