diff options
-rw-r--r-- | gdb/ChangeLog | 9 | ||||
-rw-r--r-- | gdb/breakpoint.c | 75 | ||||
-rw-r--r-- | gdb/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/testsuite/gdb.mi/mi-break.exp | 20 |
4 files changed, 71 insertions, 38 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 6797c72c3..54782fb 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,12 @@ +2012-11-09 Yao Qi <yao@codesourcery.com> + + * breakpoint.c: Declare set_tracepoint_count. + (install_breakpoint): Call set_tracepoint_count if B is a + tracepoint. + (trace_command): Don't call set_tracepoint_count. Re-indent. + (strace_command, ftrace_command): + (create_tracepoint_from_upload): Likewise. + 2012-11-09 Pedro Alves <palves@redhat.com> * gdbarch.sh (target_gdbarch) <gdbarch.h>: Reimplement as macro. diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index 092d81e..3763a04 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -261,6 +261,8 @@ static void disable_trace_command (char *, int); static void trace_pass_command (char *, int); +static void set_tracepoint_count (int num); + static int is_masked_watchpoint (const struct breakpoint *b); static struct bp_location **get_first_locp_gte_addr (CORE_ADDR address); @@ -8319,6 +8321,8 @@ install_breakpoint (int internal, struct breakpoint *b, int update_gll) { add_to_breakpoint_chain (b); set_breakpoint_number (internal, b); + if (is_tracepoint (b)) + set_tracepoint_count (breakpoint_count); if (!internal) mention (b); observer_notify_breakpoint_created (b); @@ -14999,35 +15003,33 @@ trace_command (char *arg, int from_tty) else ops = &tracepoint_breakpoint_ops; - if (create_breakpoint (get_current_arch (), - arg, - NULL, 0, NULL, 1 /* parse arg */, - 0 /* tempflag */, - bp_tracepoint /* type_wanted */, - 0 /* Ignore count */, - pending_break_support, - ops, - from_tty, - 1 /* enabled */, - 0 /* internal */, 0)) - set_tracepoint_count (breakpoint_count); + create_breakpoint (get_current_arch (), + arg, + NULL, 0, NULL, 1 /* parse arg */, + 0 /* tempflag */, + bp_tracepoint /* type_wanted */, + 0 /* Ignore count */, + pending_break_support, + ops, + from_tty, + 1 /* enabled */, + 0 /* internal */, 0); } static void ftrace_command (char *arg, int from_tty) { - if (create_breakpoint (get_current_arch (), - arg, - NULL, 0, NULL, 1 /* parse arg */, - 0 /* tempflag */, - bp_fast_tracepoint /* type_wanted */, - 0 /* Ignore count */, - pending_break_support, - &tracepoint_breakpoint_ops, - from_tty, - 1 /* enabled */, - 0 /* internal */, 0)) - set_tracepoint_count (breakpoint_count); + create_breakpoint (get_current_arch (), + arg, + NULL, 0, NULL, 1 /* parse arg */, + 0 /* tempflag */, + bp_fast_tracepoint /* type_wanted */, + 0 /* Ignore count */, + pending_break_support, + &tracepoint_breakpoint_ops, + from_tty, + 1 /* enabled */, + 0 /* internal */, 0); } /* strace command implementation. Creates a static tracepoint. */ @@ -15044,18 +15046,17 @@ strace_command (char *arg, int from_tty) else ops = &tracepoint_breakpoint_ops; - if (create_breakpoint (get_current_arch (), - arg, - NULL, 0, NULL, 1 /* parse arg */, - 0 /* tempflag */, - bp_static_tracepoint /* type_wanted */, - 0 /* Ignore count */, - pending_break_support, - ops, - from_tty, - 1 /* enabled */, - 0 /* internal */, 0)) - set_tracepoint_count (breakpoint_count); + create_breakpoint (get_current_arch (), + arg, + NULL, 0, NULL, 1 /* parse arg */, + 0 /* tempflag */, + bp_static_tracepoint /* type_wanted */, + 0 /* Ignore count */, + pending_break_support, + ops, + from_tty, + 1 /* enabled */, + 0 /* internal */, 0); } /* Set up a fake reader function that gets command lines from a linked @@ -15124,8 +15125,6 @@ create_tracepoint_from_upload (struct uploaded_tp *utp) CREATE_BREAKPOINT_FLAGS_INSERTED)) return NULL; - set_tracepoint_count (breakpoint_count); - /* Get the tracepoint we just created. */ tp = get_tracepoint (tracepoint_count); gdb_assert (tp != NULL); diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index e9b8b5f..e25f28f 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2012-11-09 Yao Qi <yao@codesourcery.com> + * gdb.mi/mi-break.exp (test_abreak_creation): New procedure. + (top level): Call it. + +2012-11-09 Yao Qi <yao@codesourcery.com> + * gdb.mi/mi-watch.exp (test_rwatch_creation_and_listing): Fix typo. diff --git a/gdb/testsuite/gdb.mi/mi-break.exp b/gdb/testsuite/gdb.mi/mi-break.exp index 573f484..999fef0 100644 --- a/gdb/testsuite/gdb.mi/mi-break.exp +++ b/gdb/testsuite/gdb.mi/mi-break.exp @@ -150,6 +150,24 @@ proc test_rbreak_creation_and_listing {} { "delete temp breakpoints" } +proc test_abreak_creation {} { + mi_create_varobj tpnum \$tpnum "create local variable tpnum" + # Test that $tpnum is not set before creating a tracepoint. + mi_gdb_test "521-var-evaluate-expression tpnum" \ + "521\\^done,value=\"void\"" "eval tpnum before tracepoint" + + mi_gdb_test "522-break-insert -a main" \ + "522\\^done,bkpt=\{number=\"10\",type=\"tracepoint\".*\"\}" \ + "break-insert -a operation" + + mi_gdb_test "523-var-update tpnum" \ + "523\\^done,changelist=\\\[\{name=\"tpnum\",in_scope=\"true\",type_changed=\"false\",has_more=\"0\"\}\\\]" \ + "update tpnum" + # Test that $tpnum is updated after creating a tracepoint. + mi_gdb_test "524-var-evaluate-expression tpnum" \ + "524\\^done,value=\"10\"" "eval tpnum after tracepoint" +} + proc test_ignore_count {} { global mi_gdb_prompt global line_callme_body @@ -256,5 +274,7 @@ test_disabled_creation test_breakpoint_commands +test_abreak_creation + mi_gdb_exit return 0 |