Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Pedro Alves <palves@redhat.com>
To: Eli Zaretskii <eliz@gnu.org>
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 17:21:00 -0000	[thread overview]
Message-ID: <50A52493.70807@redhat.com> (raw)
In-Reply-To: <83mwyiu7j6.fsf@gnu.org>

On 15-11-2012 16:59, Eli Zaretskii wrote:
>> Date: Thu, 15 Nov 2012 10:36:26 +0000
>> From: Pedro Alves <palves@redhat.com>
>> CC: Mark Kettenis <mark.kettenis@xs4all.nl>, brobecker@adacore.com,        gdb@sourceware.org
>>
>>> GDB shouldn't mention
>>> threads at all, unless the program being debugged has more than a
>>> single thread.
>>
>> See?  If it has a single thread, GDB calls that thread "thread 1".
> 
> To propose a compromise: can we call the only thread "main thread"
> instead of "thread 1"?

Not really.  You can end up with one thread in the list, even after
the "main thread" having exited.

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.  My previous paste hinted at it.

We could say "inferior N" instead, but it's just much simpler to always call
the single thread in single-threaded inferiors a thread, rather than
having to explain (and care for) the special case of non-threaded
vs single-threaded.  I'd very much dislike that inconsistency.  I wouldn't
even know how to distinguish the cases, since with remote debugging,
GDB has no clue on whether the other end is threaded or not.

Some other points:

It makes no sense to me to have "thread apply all FOO" do nothing
for non-threaded inferiors.

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.

Etc.

> 
>> GDB's model calls the unit of scheduling in the inferior that got
>> the signal "Thread N".  You can "thread N" to switch to it.
>>
>> (gdb) maint print target-stack
>> The current target stack is:
>>   - child (Unix child process)
>>   - exec (Local exec file)
>>   - None (None)
>> (gdb) info threads
>>   Id   Target Id         Frame
>> * 1    process 9939 "break" main (argc=1, argv=0x7fffffffdc48, envp=0x7fffffffdc58) at ../../../src/gdb/testsuite/gdb.base/break.c:89
> 
> This just says that GDB's model is self-consistent.  Being consistent
> doesn't necessarily mean being correct ;-)

Nor wrong.  But self-consistent is certainly better than inconsistent.

-- 
Pedro Alves


  reply	other threads:[~2012-11-15 17:21 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 [this message]
2012-11-15 17:51                   ` Joel Brobecker
2012-11-15 18:16                   ` Eli Zaretskii
2012-11-15 18:27                     ` Paul_Koning
2012-11-15 18:27                     ` Pedro Alves
2012-11-15 19:07                       ` Eli Zaretskii
2012-11-15 20:33                         ` Pedro Alves
2012-11-15 20:58                           ` Eli Zaretskii
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=50A52493.70807@redhat.com \
    --to=palves@redhat.com \
    --cc=brobecker@adacore.com \
    --cc=eliz@gnu.org \
    --cc=gdb@sourceware.org \
    --cc=gnu@toad.com \
    --cc=mark.kettenis@xs4all.nl \
    /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