diff options
author | Tom Tromey <tromey@redhat.com> | 2014-07-28 12:53:35 -0600 |
---|---|---|
committer | Tom Tromey <tromey@redhat.com> | 2014-08-04 08:07:53 -0600 |
commit | 3cecbbbef197fdcdc833155ba4c3f3233a10e5c7 (patch) | |
tree | 305ed830bb69dea23e2e331539d3e906793c1fa4 /gdb/target.c | |
parent | 00b51ff5835770104952dca3f9addb8f1025a24b (diff) | |
download | gdb-3cecbbbef197fdcdc833155ba4c3f3233a10e5c7.zip gdb-3cecbbbef197fdcdc833155ba4c3f3233a10e5c7.tar.gz gdb-3cecbbbef197fdcdc833155ba4c3f3233a10e5c7.tar.bz2 |
make "set debug target" take effect immediately
Right now, "set debug target" acts a bit strangely.
Most target APIs only notice that it has changed when the target stack
is changed in some way. This is because many methods implement the
setting using the special debug target. However, a few spots do
change their behavior immediately -- any place explicitly checking
"targetdebug".
Some of this peculiar behavior is documented. However, I think that
it just isn't very useful for it to work this way. So, this patch
changes "set debug target" to take effect immediately in all cases.
This is done by simply calling update_current_target when the setting
is changed.
This required one small change in the test suite. Here a test was
expecting the current behavior.
Built and regtested on x86-64 Fedora 20.
2014-08-04 Tom Tromey <tromey@redhat.com>
* target.c (set_targetdebug): New function.
(initialize_targets): Pass set_targetdebug when creating "set
debug target".
2014-08-04 Tom Tromey <tromey@redhat.com>
* gdb.texinfo (Debugging Output): Update for change to "set debug
target".
2014-08-04 Tom Tromey <tromey@redhat.com>
* gdb.base/sss-bp-on-user-bp-2.exp: Expect output from "set debug
target 0".
Diffstat (limited to 'gdb/target.c')
-rw-r--r-- | gdb/target.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/gdb/target.c b/gdb/target.c index f5c9ba3..9b907fa 100644 --- a/gdb/target.c +++ b/gdb/target.c @@ -118,6 +118,8 @@ static struct target_ops debug_target; static void init_dummy_target (void); +static void update_current_target (void); + /* Pointer to array of target architecture structures; the size of the array; the current index into the array; the allocated size of the array. */ @@ -173,6 +175,13 @@ int may_stop = 1; /* Non-zero if we want to see trace of target level stuff. */ static unsigned int targetdebug = 0; + +static void +set_targetdebug (char *args, int from_tty, struct cmd_list_element *c) +{ + update_current_target (); +} + static void show_targetdebug (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value) @@ -3565,9 +3574,8 @@ initialize_targets (void) Set target debugging."), _("\ Show target debugging."), _("\ When non-zero, target debugging is enabled. Higher numbers are more\n\ -verbose. Changes do not take effect until the next \"run\" or \"target\"\n\ -command."), - NULL, +verbose."), + set_targetdebug, show_targetdebug, &setdebuglist, &showdebuglist); |