* [Bug gdb/17525] target-async: breakpoint commands not executed when program run from -x script
2014-10-30 18:23 [Bug gdb/17525] New: target-async: breakpoint commands not executed when program run from -x script brobecker at gnat dot com
@ 2014-10-30 18:37 ` brobecker at gnat dot com
2015-01-13 17:57 ` palves at redhat dot com
` (7 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: brobecker at gnat dot com @ 2014-10-30 18:37 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=17525
--- Comment #1 from Joel Brobecker <brobecker at gnat dot com> ---
The script works fine when sourced from the GDB prompt, Eg:
(gdb) source cmds.gdb
[program runs to completion after hitting breakpoints 20 times]
It also works when the script is piped to GDB's stdin:
% cat cmds.gdb | gdb
I think the difference is that the script is then executed as part of GDB's
global main loop, which calls bpstat_do_actions at the end of each command's
execution, whereas "-x cmds.gdb" just results in source_script being called.
The latter ends up executing the "run" command from our script, with the
associated call to bpstat_do_actions, which explains why the commands-list
gets executed once, but then that's it.
Adding bogus commands such as...
echo
echo
echo
echo
... each cause additional commands to be executed which themselves trigger
bpstat_do_actions to be executed, thus each giving us back one of the missing
iterations.
But what we need is to be able to loop-until-we're-done after having sourced
the script.
One thing thats' interesting which might indicate that I'm missing something is
the fact that after the debugger stops (too early), my prompt is not the one I
would expect (through .gdbinit). At this point, if:
- I press ctrl-d, then my normal prompt appears;
- I type "bogus" as a command, GDB does:
(gdb) bogus
Undefined command: "bogus". Try "help".
- I type a valid command, the command gets executed, and my program then
resumes once:
(gdb) print 1
$1 = 1
Breakpoint 1, increment (i=7) at foo.c:4
4 return i + 1;
I have clearly missed something.
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug gdb/17525] target-async: breakpoint commands not executed when program run from -x script
2014-10-30 18:23 [Bug gdb/17525] New: target-async: breakpoint commands not executed when program run from -x script brobecker at gnat dot com
2014-10-30 18:37 ` [Bug gdb/17525] " brobecker at gnat dot com
@ 2015-01-13 17:57 ` palves at redhat dot com
2015-01-13 19:01 ` palves at redhat dot com
` (6 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: palves at redhat dot com @ 2015-01-13 17:57 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=17525
Pedro Alves <palves at redhat dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
CC| |palves at redhat dot com
Assignee|unassigned at sourceware dot org |palves at redhat dot com
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug gdb/17525] target-async: breakpoint commands not executed when program run from -x script
2014-10-30 18:23 [Bug gdb/17525] New: target-async: breakpoint commands not executed when program run from -x script brobecker at gnat dot com
2014-10-30 18:37 ` [Bug gdb/17525] " brobecker at gnat dot com
2015-01-13 17:57 ` palves at redhat dot com
@ 2015-01-13 19:01 ` palves at redhat dot com
2015-01-13 21:03 ` dje at google dot com
` (5 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: palves at redhat dot com @ 2015-01-13 19:01 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=17525
--- Comment #2 from Pedro Alves <palves at redhat dot com> ---
Patch sent:
https://sourceware.org/ml/gdb-patches/2015-01/msg00353.html
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug gdb/17525] target-async: breakpoint commands not executed when program run from -x script
2014-10-30 18:23 [Bug gdb/17525] New: target-async: breakpoint commands not executed when program run from -x script brobecker at gnat dot com
` (2 preceding siblings ...)
2015-01-13 19:01 ` palves at redhat dot com
@ 2015-01-13 21:03 ` dje at google dot com
2015-01-14 12:38 ` cvs-commit at gcc dot gnu.org
` (4 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: dje at google dot com @ 2015-01-13 21:03 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=17525
dje at google dot com changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |dje at google dot com
--- Comment #3 from dje at google dot com ---
As a data point, see also https://sourceware.org/bugzilla/show_bug.cgi?id=17223
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug gdb/17525] target-async: breakpoint commands not executed when program run from -x script
2014-10-30 18:23 [Bug gdb/17525] New: target-async: breakpoint commands not executed when program run from -x script brobecker at gnat dot com
` (3 preceding siblings ...)
2015-01-13 21:03 ` dje at google dot com
@ 2015-01-14 12:38 ` cvs-commit at gcc dot gnu.org
2015-01-14 12:43 ` cvs-commit at gcc dot gnu.org
` (3 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2015-01-14 12:38 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=17525
--- Comment #4 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Pedro Alves <palves@sourceware.org>:
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=5589af0e6661abe07e9a997f6324988b4b87c72f
commit 5589af0e6661abe07e9a997f6324988b4b87c72f
Author: Pedro Alves <palves@redhat.com>
Date: Mon Jan 12 19:30:08 2015 +0000
PR17525 - breakpoint commands not executed when program run from -x script
Executing a gdb script that runs the inferior (from the command line
with -x), and has it hit breakpoints with breakpoint commands that
themselves run the target, is currently broken on async targets
(Linux, remote).
While we're executing a command list or a script, we force the
interpreter to be sync, which results in some functions nesting an
event loop and waiting for the target to stop, instead of returning
immediately and having the top level event loop handle the stop.
The issue with this bug is simply that bpstat_do_actions misses
checking whether the interpreter is sync. When we get here, in the
case of executing a script (or, when the interpreter is sync), the
program has already advanced to the next breakpoint, through
maybe_wait_sync_command_done. We need to process its breakpoints
immediately, just like with a sync target.
Tested on x86_64 Fedora 20.
gdb/
2015-01-14 Pedro Alves <palves@redhat.com>
PR gdb/17525
* breakpoint.c: Include "interps.h".
(bpstat_do_actions_1): Also check whether the interpreter is
async.
gdb/testsuite/
2015-01-14 Pedro Alves <palves@redhat.com>
Joel Brobecker <brobecker@adacore.com>
PR gdb/17525
* gdb.base/bp-cmds-execution-x-script.c: New file.
* gdb.base/bp-cmds-execution-x-script.exp: New file.
* gdb.base/bp-cmds-execution-x-script.gdb: New file.
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug gdb/17525] target-async: breakpoint commands not executed when program run from -x script
2014-10-30 18:23 [Bug gdb/17525] New: target-async: breakpoint commands not executed when program run from -x script brobecker at gnat dot com
` (4 preceding siblings ...)
2015-01-14 12:38 ` cvs-commit at gcc dot gnu.org
@ 2015-01-14 12:43 ` cvs-commit at gcc dot gnu.org
2015-01-14 13:18 ` cvs-commit at gcc dot gnu.org
` (2 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2015-01-14 12:43 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=17525
--- Comment #5 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
The gdb-7.9-branch branch has been updated by Pedro Alves
<palves@sourceware.org>:
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=e18fc124cef918e6a7d9de89804850a6f8f765b4
commit e18fc124cef918e6a7d9de89804850a6f8f765b4
Author: Pedro Alves <palves@redhat.com>
Date: Wed Jan 14 12:38:47 2015 +0000
PR17525 - breakpoint commands not executed when program run from -x script
Executing a gdb script that runs the inferior (from the command line
with -x), and has it hit breakpoints with breakpoint commands that
themselves run the target, is currently broken on async targets
(Linux, remote).
While we're executing a command list or a script, we force the
interpreter to be sync, which results in some functions nesting an
event loop and waiting for the target to stop, instead of returning
immediately and having the top level event loop handle the stop.
The issue with this bug is simply that bpstat_do_actions misses
checking whether the interpreter is sync. When we get here, in the
case of executing a script (or, when the interpreter is sync), the
program has already advanced to the next breakpoint, through
maybe_wait_sync_command_done. We need to process its breakpoints
immediately, just like with a sync target.
Tested on x86_64 Fedora 20.
gdb/
2015-01-14 Pedro Alves <palves@redhat.com>
PR gdb/17525
* breakpoint.c: Include "interps.h".
(bpstat_do_actions_1): Also check whether the interpreter is
async.
gdb/testsuite/
2015-01-14 Pedro Alves <palves@redhat.com>
Joel Brobecker <brobecker@adacore.com>
PR gdb/17525
* gdb.base/bp-cmds-execution-x-script.c: New file.
* gdb.base/bp-cmds-execution-x-script.exp: New file.
* gdb.base/bp-cmds-execution-x-script.gdb: New file.
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug gdb/17525] target-async: breakpoint commands not executed when program run from -x script
2014-10-30 18:23 [Bug gdb/17525] New: target-async: breakpoint commands not executed when program run from -x script brobecker at gnat dot com
` (5 preceding siblings ...)
2015-01-14 12:43 ` cvs-commit at gcc dot gnu.org
@ 2015-01-14 13:18 ` cvs-commit at gcc dot gnu.org
2015-01-14 13:48 ` palves at redhat dot com
2021-11-08 8:28 ` richardshodges7 at gmail dot com
8 siblings, 0 replies; 10+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2015-01-14 13:18 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=17525
--- Comment #6 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
The gdb-7.8-branch branch has been updated by Pedro Alves
<palves@sourceware.org>:
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=d2c8f4be20a4213ea64b0ede63c2fcde69c637a1
commit d2c8f4be20a4213ea64b0ede63c2fcde69c637a1
Author: Pedro Alves <palves@redhat.com>
Date: Wed Jan 14 12:38:47 2015 +0000
PR17525 - breakpoint commands not executed when program run from -x script
Executing a gdb script that runs the inferior (from the command line
with -x), and has it hit breakpoints with breakpoint commands that
themselves run the target, is currently broken on async targets
(Linux, remote).
While we're executing a command list or a script, we force the
interpreter to be sync, which results in some functions nesting an
event loop and waiting for the target to stop, instead of returning
immediately and having the top level event loop handle the stop.
The issue with this bug is simply that bpstat_do_actions misses
checking whether the interpreter is sync. When we get here, in the
case of executing a script (or, when the interpreter is sync), the
program has already advanced to the next breakpoint, through
maybe_wait_sync_command_done. We need to process its breakpoints
immediately, just like with a sync target.
Tested on x86_64 Fedora 20.
gdb/
2015-01-14 Pedro Alves <palves@redhat.com>
PR gdb/17525
* breakpoint.c: Include "interps.h".
(bpstat_do_actions_1): Also check whether the interpreter is
async.
gdb/testsuite/
2015-01-14 Pedro Alves <palves@redhat.com>
Joel Brobecker <brobecker@adacore.com>
PR gdb/17525
* gdb.base/bp-cmds-execution-x-script.c: New file.
* gdb.base/bp-cmds-execution-x-script.exp: New file.
* gdb.base/bp-cmds-execution-x-script.gdb: New file.
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug gdb/17525] target-async: breakpoint commands not executed when program run from -x script
2014-10-30 18:23 [Bug gdb/17525] New: target-async: breakpoint commands not executed when program run from -x script brobecker at gnat dot com
` (6 preceding siblings ...)
2015-01-14 13:18 ` cvs-commit at gcc dot gnu.org
@ 2015-01-14 13:48 ` palves at redhat dot com
2021-11-08 8:28 ` richardshodges7 at gmail dot com
8 siblings, 0 replies; 10+ messages in thread
From: palves at redhat dot com @ 2015-01-14 13:48 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=17525
Pedro Alves <palves at redhat dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution|--- |FIXED
--- Comment #7 from Pedro Alves <palves at redhat dot com> ---
Fixed in 7.8, 7.9 and master.
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Bug gdb/17525] target-async: breakpoint commands not executed when program run from -x script
2014-10-30 18:23 [Bug gdb/17525] New: target-async: breakpoint commands not executed when program run from -x script brobecker at gnat dot com
` (7 preceding siblings ...)
2015-01-14 13:48 ` palves at redhat dot com
@ 2021-11-08 8:28 ` richardshodges7 at gmail dot com
8 siblings, 0 replies; 10+ messages in thread
From: richardshodges7 at gmail dot com @ 2021-11-08 8:28 UTC (permalink / raw)
To: gdb-prs
https://sourceware.org/bugzilla/show_bug.cgi?id=17525
--- Comment #8 from Kobi <richardshodges7 at gmail dot com> ---
The issue with this bug is simply that bpstat_do_actions misses
checking whether the interpreter is sync. When we get here, in the
case of executing a script (or, when the interpreter is sync), the
program has already advanced to the next breakpoint, through
maybe_wait_sync_command_done. http://springfieldconcretesolutions.com
--
You are receiving this mail because:
You are on the CC list for the bug.
^ permalink raw reply [flat|nested] 10+ messages in thread