From: Pedro Alves <palves@redhat.com>
To: Doug Evans <dje@google.com>
Cc: Eli Zaretskii <eliz@gnu.org>, gdb <gdb@sourceware.org>
Subject: Re: Inadvertently run inferior threads
Date: Tue, 23 Jun 2015 12:19:00 -0000 [thread overview]
Message-ID: <55894EDC.4050404@redhat.com> (raw)
In-Reply-To: <CADPb22RP5gwPYx_DxhbbzZpWjN69Qpxd8Yk52Mwjd0TOTWqbOA@mail.gmail.com>
On 06/23/2015 05:07 AM, Doug Evans wrote:
> Maybe we could give up on trying to cover up the stopped/running state
> of the thread and just let info threads report something closer to
> what's actually going on?
> An asterisk or some such accompanying the output of threads in
> intermediate states may be a sufficient clue to the the user.
I strongly disagree.
Plus, frontends also don't want to be flooded with useless
*running -> *stopped -> *running transitions.
Hiding internal stops isn't the complicated part. It's the opposite
that is causing problems. That is, the hiding that threads run at all
when doing an infcall:
(gdb)
p malloc (0)
&"p malloc (0)\n"
~"$1 = (void *) 0x602010\n"
^done
(gdb)
Note no *running/*stopped above.
The next question should be: if you do "print sleep (10000)", then
since the thread / threads was/were never marked running, does that mean that
the user/frontend can end up issuing another execution command
that corrupts the ongoing infcall? The answer is no, but just because
infcalls are always synchronous, so there's no way to issue any command
while an infcall is ongoing anyway. More about it here:
https://sourceware.org/ml/gdb-patches/2014-05/msg00273.html
But fixing this bug may require removing the infcall-specific
(pretend-it-doesnt-run) suppressions, resulting in something like:
(gdb)
p malloc (0)
*running,thread-id="all"
&"p malloc (0)\n"
~"$1 = (void *) 0x602010\n"
*stopped,frame={addr="0x000000000040071c",func="main",args=[{name="argc",value="1"}, (...) ,thread-id="1",stopped-threads="all",core="3" ^done
(gdb)
I'm playing with tests and potential solutions.
Thanks,
Pedro Alves
next prev parent reply other threads:[~2015-06-23 12:19 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-12 17:11 Eli Zaretskii
2015-03-14 13:40 ` Pedro Alves
2015-03-14 14:56 ` Eli Zaretskii
2015-03-14 15:36 ` Pedro Alves
2015-03-14 15:51 ` Pedro Alves
2015-03-14 15:58 ` Pedro Alves
2015-06-10 15:15 ` Eli Zaretskii
2015-03-14 16:06 ` Eli Zaretskii
2015-06-10 15:50 ` Eli Zaretskii
2015-06-11 13:42 ` Eli Zaretskii
2015-06-15 13:18 ` Pedro Alves
2015-06-15 15:27 ` Eli Zaretskii
2015-06-15 15:42 ` Pedro Alves
2015-06-23 4:07 ` Doug Evans
2015-06-23 12:19 ` Pedro Alves [this message]
2015-06-23 19:11 ` Pedro Alves
2015-06-23 19:52 ` Eli Zaretskii
2015-06-24 14:29 ` Eli Zaretskii
2015-06-29 15:57 ` Pedro Alves
2015-06-23 14:58 ` Eli Zaretskii
2015-06-15 13:01 ` Pedro Alves
2015-06-15 15:14 ` Eli Zaretskii
2015-06-15 15:28 ` Pedro Alves
2015-06-15 17:21 ` Eli Zaretskii
2015-06-15 17:56 ` Pedro Alves
2015-06-15 19:07 ` Eli Zaretskii
2015-06-23 11:51 ` Pedro Alves
2015-03-14 16:04 ` Eli Zaretskii
2015-03-14 16:15 ` Pedro Alves
2015-03-14 16:17 ` Eli Zaretskii
2015-03-14 16:23 ` Pedro Alves
2015-03-14 17:01 ` Eli Zaretskii
2015-03-14 17:46 ` Pedro Alves
2015-06-10 15:13 ` Eli Zaretskii
2015-06-15 13:08 ` Pedro Alves
2015-06-15 15:15 ` Eli Zaretskii
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=55894EDC.4050404@redhat.com \
--to=palves@redhat.com \
--cc=dje@google.com \
--cc=eliz@gnu.org \
--cc=gdb@sourceware.org \
/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