From: Vladimir Prus <vladimir@codesourcery.com>
To: gdb-patches@sources.redhat.com
Subject: Re: Stop breakpoint commands from poping the target
Date: Fri, 14 Mar 2008 08:15:00 -0000 [thread overview]
Message-ID: <frdc6o$r2$1@ger.gmane.org> (raw)
In-Reply-To: <200803140802.34377.pedro@codesourcery.com>
Pedro Alves wrote:
> This patch goes on top of Vladimir's pending async fixes patch.
>
> commands.exp triggers the problem this patch addresses, in
> async mode.
>
> In that test, we have a watch on a local variable, and then we
> add a command to that watch to print the local variable's
> value. When the variable goes out of scope, gdb prints that,
> and also runs the associated commands with the watch. Since
> the variable is out of scope, and error is thrown. In sync
> targets, the exception just ends the breakpoints command
> processing, and goes on to proceed with the command loop. But in
> async mode, the exception ends up in
> inf-loop.c:inferior_event_handler/INF_REG_EVENT, which considers exceptions
> fatal, and pops the target. The fix is to catch the exception earlier.
>
> Imagine the following command list associated with a breakpoint:
> non_existing_command
> info target
>
> As and example, in sync mode, trying to execute
> non_existing_command causes an error that stops the
> interpreting of all subsequent commands, hence info target is
> never executed. The patch installs the same behaviour for
> async targets.
>
> commands.exp passes cleanly with the linux native async patch
> I'll post next.
Heh, we seem to have a mid-flight collision here -- I've a local
patch moving the call to bpstat_do_actions into
inferior_event_handler. The call you modify, in
command_line_handler_continuation, runs for CLI only and it's
quite possible to have commands on breakpoints even if GDB uses
MI on the top level.
But that only chances which line of code must be changed, while
this patch is still needed. One tweak though -- I think it's
better to use TRY_CATCH, not catch_exceptions -- it's just
fewer lines.
- Volodya
next prev parent reply other threads:[~2008-03-14 8:15 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-14 8:02 Pedro Alves
2008-03-14 8:15 ` Vladimir Prus [this message]
2008-03-14 19:31 ` Daniel Jacobowitz
2008-03-17 16:44 ` Pedro Alves
2008-03-17 22:11 ` Daniel Jacobowitz
2008-03-15 15:59 ` Vladimir Prus
2008-03-17 16:49 ` Pedro Alves
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='frdc6o$r2$1@ger.gmane.org' \
--to=vladimir@codesourcery.com \
--cc=gdb-patches@sources.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