From 558a9d8255131b61150160b6226af5c2550cb52c Mon Sep 17 00:00:00 2001 From: Yao Qi Date: Fri, 9 Nov 2012 07:21:03 +0000 Subject: [PATCH] 2012-11-09 Yao Qi * 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. gdb/testsuite: 2012-11-09 Yao Qi * gdb.mi/mi-break.exp (test_abreak_creation): New procedure. (top level): Call it --- gdb/ChangeLog | 9 ++++ gdb/breakpoint.c | 75 +++++++++++++++---------------- gdb/testsuite/ChangeLog | 5 +++ gdb/testsuite/gdb.mi/mi-break.exp | 20 +++++++++ 4 files changed, 71 insertions(+), 38 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 6797c72c3c8..54782fbed96 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,12 @@ +2012-11-09 Yao Qi + + * 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 * gdbarch.sh (target_gdbarch) : Reimplement as macro. diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index 092d81eb703..3763a042475 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 e9b8b5f43ac..e25f28f9b20 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2012-11-09 Yao Qi + + * gdb.mi/mi-break.exp (test_abreak_creation): New procedure. + (top level): Call it. + 2012-11-09 Yao Qi * gdb.mi/mi-watch.exp (test_rwatch_creation_and_listing): Fix diff --git a/gdb/testsuite/gdb.mi/mi-break.exp b/gdb/testsuite/gdb.mi/mi-break.exp index 573f484c6c6..999fef0989e 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 -- 2.30.2