make "set debug target" take effect immediately
authorTom Tromey <tromey@redhat.com>
Mon, 28 Jul 2014 18:53:35 +0000 (12:53 -0600)
committerTom Tromey <tromey@redhat.com>
Mon, 4 Aug 2014 14:07:53 +0000 (08:07 -0600)
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".

gdb/ChangeLog
gdb/doc/ChangeLog
gdb/doc/gdb.texinfo
gdb/target.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/sss-bp-on-user-bp-2.exp

index af340f805e787c1484a0edb65e812326815240ba..5201626ac361cc42d3654b0c1b905ea0437b1fde 100644 (file)
@@ -1,3 +1,9 @@
+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-01  Joel Brobecker  <brobecker@adacore.com>
 
        * gdbtypes.c (resolve_dynamic_struct): Do not generate an error
index 20ce293d0aebbc5e07a15fa268e81f54b53680b8..2bf94bc82a9c047342903f096d3bb26232ff999c 100644 (file)
@@ -1,3 +1,8 @@
+2014-08-04  Tom Tromey  <tromey@redhat.com>
+
+       * gdb.texinfo (Debugging Output): Update for change to "set debug
+       target".
+
 2014-08-01  Masaki Muranaka  <monaka@monami-software.com>
 
        Pushed by Joel Brobecker  <brobecker@adacore.com>.
index 32f709a34c4c0353ded39cd21d8fcffe3a454672..8d9148cd1cafbbe9b707dcd92a0a14959e759575 100644 (file)
@@ -22996,8 +22996,7 @@ Show the current state of symbol table creation debugging.
 Turns on or off display of @value{GDBN} target debugging info. This info
 includes what is going on at the target level of GDB, as it happens. The
 default is 0.  Set it to 1 to track events, and to 2 to also track the
-value of large memory transfers.  Changes to this flag do not take effect
-until the next time you connect to a target or use the @code{run} command.
+value of large memory transfers.
 @item show debug target
 Displays the current state of displaying @value{GDBN} target debugging
 info.
index f5c9ba3cdad1e12ea8069a9748f9f66b3bd6375a..9b907fa75fc8f47c5883caf0ea50e23abe2f9ba9 100644 (file)
@@ -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);
 
index 1ff72492b4c7e88d7ec3e044b5bed1c27c505c14..0bda4d0c06c9344dcf8ebaa843fb9d4702086b03 100644 (file)
@@ -1,3 +1,8 @@
+2014-08-04  Tom Tromey  <tromey@redhat.com>
+
+       * gdb.base/sss-bp-on-user-bp-2.exp: Expect output from "set debug
+       target 0".
+
 2014-08-04  Tom Tromey  <tromey@redhat.com>
 
        * gdb.base/sss-bp-on-user-bp-2.exp: Match "to_resume", not
index cb95da03709025feed3a23de615bc0e4c4b08847..9e86bea1373550a7462032de63cce66b787f035b 100644 (file)
@@ -76,7 +76,7 @@ if { $hardware_step } {
     return
 }
 
-gdb_test_no_output "set debug target 0"
+gdb_test "set debug target 0" "->to_log_command.*\\)"
 
 set line_re "\[^\r\n\]*"