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
next prev parent 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