Index: breakpoint.c =================================================================== RCS file: /cvs/src/src/gdb/breakpoint.c,v retrieving revision 1.475 diff -p -r1.475 breakpoint.c *** breakpoint.c 2 Apr 2010 01:18:35 -0000 1.475 --- breakpoint.c 3 Apr 2010 02:48:15 -0000 *************** static int watchpoint_locations_match (s *** 130,136 **** static void breakpoints_info (char *, int); ! static void breakpoint_1 (int, int); static bpstat bpstat_alloc (const struct bp_location *, bpstat); --- 130,138 ---- static void breakpoints_info (char *, int); ! static void watchpoints_info (char *, int); ! ! static int breakpoint_1 (int, int, int (*) (const struct breakpoint *)); static bpstat bpstat_alloc (const struct bp_location *, bpstat); *************** static void update_global_location_list *** 204,212 **** static void update_global_location_list_nothrow (int); ! static int is_hardware_watchpoint (struct breakpoint *bpt); ! static int is_watchpoint (struct breakpoint *bpt); static void insert_breakpoint_locations (void); --- 206,214 ---- static void update_global_location_list_nothrow (int); ! static int is_hardware_watchpoint (const struct breakpoint *bpt); ! static int is_watchpoint (const struct breakpoint *bpt); static void insert_breakpoint_locations (void); *************** static int overlay_events_enabled; *** 366,372 **** #define ALL_TRACEPOINTS(B) \ for (B = breakpoint_chain; B; B = B->next) \ ! if (tracepoint_type (B)) /* Chains of all breakpoints defined. */ --- 368,374 ---- #define ALL_TRACEPOINTS(B) \ for (B = breakpoint_chain; B; B = B->next) \ ! if (is_tracepoint (B)) /* Chains of all breakpoints defined. */ *************** clear_breakpoint_hit_counts (void) *** 464,477 **** b->hit_count = 0; } - /* Encapsulate tests for different types of tracepoints. */ - - static int - tracepoint_type (const struct breakpoint *b) - { - return (b->type == bp_tracepoint || b->type == bp_fast_tracepoint); - } - /* Allocate a new counted_command_line with reference count of 1. The new structure owns COMMANDS. */ --- 466,471 ---- *************** check_no_tracepoint_commands (struct com *** 817,836 **** } } int ! breakpoint_is_tracepoint (const struct breakpoint *b) { ! switch (b->type) ! { ! case bp_tracepoint: ! case bp_fast_tracepoint: ! return 1; ! default: ! return 0; ! ! } } ! /* A helper function that validsates that COMMANDS are valid for a breakpoint. This function will throw an exception if a problem is found. */ --- 811,824 ---- } } + /* Encapsulate tests for different types of tracepoints. */ + int ! is_tracepoint (const struct breakpoint *b) { ! return (b->type == bp_tracepoint || b->type == bp_fast_tracepoint); } ! /* A helper function that validsates that COMMANDS are valid for a breakpoint. This function will throw an exception if a problem is found. */ *************** static void *** 839,845 **** validate_commands_for_breakpoint (struct breakpoint *b, struct command_line *commands) { ! if (breakpoint_is_tracepoint (b)) { /* We need to verify that each top-level element of commands is valid for tracepoints, that there's at most one while-stepping --- 827,833 ---- validate_commands_for_breakpoint (struct breakpoint *b, struct command_line *commands) { ! if (is_tracepoint (b)) { /* We need to verify that each top-level element of commands is valid for tracepoints, that there's at most one while-stepping *************** do_map_commands_command (struct breakpoi *** 949,955 **** l = read_command_lines (str, info->from_tty, 1, ! (breakpoint_is_tracepoint (b) ? check_tracepoint_command : 0), b); --- 937,943 ---- l = read_command_lines (str, info->from_tty, 1, ! (is_tracepoint (b) ? check_tracepoint_command : 0), b); *************** insert_catchpoint (struct ui_out *uo, vo *** 1175,1181 **** /* Return true if BPT is of any hardware watchpoint kind. */ static int ! is_hardware_watchpoint (struct breakpoint *bpt) { return (bpt->type == bp_hardware_watchpoint || bpt->type == bp_read_watchpoint --- 1163,1169 ---- /* Return true if BPT is of any hardware watchpoint kind. */ static int ! is_hardware_watchpoint (const struct breakpoint *bpt) { return (bpt->type == bp_hardware_watchpoint || bpt->type == bp_read_watchpoint *************** is_hardware_watchpoint (struct breakpoin *** 1186,1192 **** software. */ static int ! is_watchpoint (struct breakpoint *bpt) { return (is_hardware_watchpoint (bpt) || bpt->type == bp_watchpoint); --- 1174,1180 ---- software. */ static int ! is_watchpoint (const struct breakpoint *bpt) { return (is_hardware_watchpoint (bpt) || bpt->type == bp_watchpoint); *************** should_be_inserted (struct bp_location * *** 1589,1595 **** /* Tracepoints are inserted by the target at a time of its choosing, not by us. */ ! if (tracepoint_type (bpt->owner)) return 0; return 1; --- 1577,1583 ---- /* Tracepoints are inserted by the target at a time of its choosing, not by us. */ ! if (is_tracepoint (bpt->owner)) return 0; return 1; *************** bpstat_check_location (const struct bp_l *** 3733,3739 **** /* By definition, the inferior does not report stops at tracepoints. */ ! if (tracepoint_type (b)) return 0; if (b->type != bp_watchpoint --- 3721,3727 ---- /* By definition, the inferior does not report stops at tracepoints. */ ! if (is_tracepoint (b)) return 0; if (b->type != bp_watchpoint *************** print_one_breakpoint_location (struct br *** 4788,4794 **** because the condition is an internal implementation detail that we do not want to expose to the user. */ annotate_field (7); ! if (tracepoint_type (b)) ui_out_text (uiout, "\ttrace only if "); else ui_out_text (uiout, "\tstop only if "); --- 4776,4782 ---- because the condition is an internal implementation detail that we do not want to expose to the user. */ annotate_field (7); ! if (is_tracepoint (b)) ui_out_text (uiout, "\ttrace only if "); else ui_out_text (uiout, "\tstop only if "); *************** user_settable_breakpoint (const struct b *** 4968,4974 **** return (b->type == bp_breakpoint || b->type == bp_catchpoint || b->type == bp_hardware_breakpoint ! || tracepoint_type (b) || b->type == bp_watchpoint || b->type == bp_read_watchpoint || b->type == bp_access_watchpoint --- 4956,4962 ---- return (b->type == bp_breakpoint || b->type == bp_catchpoint || b->type == bp_hardware_breakpoint ! || is_tracepoint (b) || b->type == bp_watchpoint || b->type == bp_read_watchpoint || b->type == bp_access_watchpoint *************** user_settable_breakpoint (const struct b *** 4976,4986 **** } /* Print information on user settable breakpoint (watchpoint, etc) ! number BNUM. If BNUM is -1 print all user settable breakpoints. ! If ALLFLAG is non-zero, include non- user settable breakpoints. */ ! static void ! breakpoint_1 (int bnum, int allflag) { struct breakpoint *b; struct bp_location *last_loc = NULL; --- 4964,4977 ---- } /* Print information on user settable breakpoint (watchpoint, etc) ! number BNUM. If BNUM is -1 print all user-settable breakpoints. ! If ALLFLAG is non-zero, include non-user-settable breakpoints. If ! FILTER is non-NULL, call it on each breakpoint and only include the ! ones for which it returns non-zero. Return the total number of ! breakpoints listed. */ ! static int ! breakpoint_1 (int bnum, int allflag, int (*filter) (const struct breakpoint *)) { struct breakpoint *b; struct bp_location *last_loc = NULL; *************** breakpoint_1 (int bnum, int allflag) *** 4998,5003 **** --- 4989,4998 ---- if (bnum == -1 || bnum == b->number) { + /* If we have a filter, only list the breakpoints it accepts. */ + if (filter && !filter (b)) + continue; + if (allflag || user_settable_breakpoint (b)) { int addr_bit = breakpoint_address_bits (b); *************** breakpoint_1 (int bnum, int allflag) *** 5053,5058 **** --- 5048,5057 ---- if (bnum == -1 || bnum == b->number) { + /* If we have a filter, only list the breakpoints it accepts. */ + if (filter && !filter (b)) + continue; + /* We only print out user settable breakpoints unless the allflag is set. */ if (allflag || user_settable_breakpoint (b)) *************** breakpoint_1 (int bnum, int allflag) *** 5064,5074 **** if (nr_printable_breakpoints == 0) { ! if (bnum == -1) ! ui_out_message (uiout, 0, "No breakpoints or watchpoints.\n"); ! else ! ui_out_message (uiout, 0, "No breakpoint or watchpoint number %d.\n", ! bnum); } else { --- 5063,5077 ---- if (nr_printable_breakpoints == 0) { ! /* If there's a filter, let the caller decide how to report empty list. */ ! if (!filter) ! { ! if (bnum == -1) ! ui_out_message (uiout, 0, "No breakpoints or watchpoints.\n"); ! else ! ui_out_message (uiout, 0, "No breakpoint or watchpoint number %d.\n", ! bnum); ! } } else { *************** breakpoint_1 (int bnum, int allflag) *** 5079,5084 **** --- 5082,5089 ---- /* FIXME? Should this be moved up so that it is only called when there have been breakpoints? */ annotate_breakpoints_table_end (); + + return nr_printable_breakpoints; } static void *************** breakpoints_info (char *bnum_exp, int fr *** 5089,5095 **** if (bnum_exp) bnum = parse_and_eval_long (bnum_exp); ! breakpoint_1 (bnum, 0); } static void --- 5094,5119 ---- if (bnum_exp) bnum = parse_and_eval_long (bnum_exp); ! breakpoint_1 (bnum, 0, NULL); ! } ! ! static void ! watchpoints_info (char *wpnum_exp, int from_tty) ! { ! int wpnum = -1, num_printed; ! ! if (wpnum_exp) ! wpnum = parse_and_eval_long (wpnum_exp); ! ! num_printed = breakpoint_1 (wpnum, 0, is_watchpoint); ! ! if (num_printed == 0) ! { ! if (wpnum == -1) ! ui_out_message (uiout, 0, "No watchpoints.\n"); ! else ! ui_out_message (uiout, 0, "No watchpoint number %d.\n", wpnum); ! } } static void *************** maintenance_info_breakpoints (char *bnum *** 5100,5106 **** if (bnum_exp) bnum = parse_and_eval_long (bnum_exp); ! breakpoint_1 (bnum, 1); } static int --- 5124,5130 ---- if (bnum_exp) bnum = parse_and_eval_long (bnum_exp); ! breakpoint_1 (bnum, 1, NULL); } static int *************** set_breakpoint_location_function (struct *** 5429,5435 **** { if (loc->owner->type == bp_breakpoint || loc->owner->type == bp_hardware_breakpoint ! || tracepoint_type (loc->owner)) { find_pc_partial_function (loc->address, &(loc->function_name), NULL, NULL); --- 5453,5459 ---- { if (loc->owner->type == bp_breakpoint || loc->owner->type == bp_hardware_breakpoint ! || is_tracepoint (loc->owner)) { find_pc_partial_function (loc->address, &(loc->function_name), NULL, NULL); *************** disable_breakpoints_in_shlibs (void) *** 5716,5722 **** if (((b->type == bp_breakpoint) || (b->type == bp_jit_event) || (b->type == bp_hardware_breakpoint) ! || (tracepoint_type (b))) && loc->pspace == current_program_space && !loc->shlib_disabled #ifdef PC_SOLIB --- 5740,5746 ---- if (((b->type == bp_breakpoint) || (b->type == bp_jit_event) || (b->type == bp_hardware_breakpoint) ! || (is_tracepoint (b))) && loc->pspace == current_program_space && !loc->shlib_disabled #ifdef PC_SOLIB *************** update_global_location_list (int should_ *** 9072,9078 **** || !loc->enabled || loc->shlib_disabled || !breakpoint_address_is_meaningful (b) ! || tracepoint_type (b)) continue; /* Permanent breakpoint should always be inserted. */ --- 9096,9102 ---- || !loc->enabled || loc->shlib_disabled || !breakpoint_address_is_meaningful (b) ! || is_tracepoint (b)) continue; /* Permanent breakpoint should always be inserted. */ *************** set_ignore_count (int bptnum, int count, *** 9732,9737 **** --- 9756,9769 ---- ALL_BREAKPOINTS (b) if (b->number == bptnum) { + if (is_tracepoint (b)) + { + if (from_tty && count != 0) + printf_filtered (_("Ignore count ignored for tracepoint %d."), + bptnum); + return; + } + b->ignore_count = count; if (from_tty) { *************** create_tracepoint_from_upload (struct up *** 10451,10479 **** static void tracepoints_info (char *tpnum_exp, int from_tty) { ! struct breakpoint *b; ! int tps_to_list = 0; ! /* In the no-arguments case, say "No tracepoints" if none found. */ ! if (tpnum_exp == 0) { ! ALL_TRACEPOINTS (b) ! { ! if (b->number >= 0) ! { ! tps_to_list = 1; ! break; ! } ! } ! if (!tps_to_list) ! { ! ui_out_message (uiout, 0, "No tracepoints.\n"); ! return; ! } } - - /* Otherwise be the same as "info break". */ - breakpoints_info (tpnum_exp, from_tty); } /* The 'enable trace' command enables tracepoints. --- 10483,10502 ---- static void tracepoints_info (char *tpnum_exp, int from_tty) { ! int tpnum = -1, num_printed; ! ! if (tpnum_exp) ! tpnum = parse_and_eval_long (tpnum_exp); ! num_printed = breakpoint_1 (tpnum, 0, is_tracepoint); ! ! if (num_printed == 0) { ! if (tpnum == -1) ! ui_out_message (uiout, 0, "No tracepoints.\n"); ! else ! ui_out_message (uiout, 0, "No tracepoint number %d.\n", tpnum); } } /* The 'enable trace' command enables tracepoints. *************** delete_trace_command (char *arg, int fro *** 10522,10528 **** { ALL_BREAKPOINTS_SAFE (b, temp) { ! if (tracepoint_type (b) && b->number >= 0) delete_breakpoint (b); } --- 10545,10551 ---- { ALL_BREAKPOINTS_SAFE (b, temp) { ! if (is_tracepoint (b) && b->number >= 0) delete_breakpoint (b); } *************** A watchpoint stops execution of your pro *** 11164,11171 **** an expression is either read or written.")); set_cmd_completer (c, expression_completer); ! add_info ("watchpoints", breakpoints_info, ! _("Synonym for ``info breakpoints''.")); /* XXX: cagney/2005-02-23: This should be a boolean, and should --- 11187,11195 ---- an expression is either read or written.")); set_cmd_completer (c, expression_completer); ! add_info ("watchpoints", watchpoints_info, _("\ ! Status of watchpoints, or watchpoint number NUMBER.")); ! /* XXX: cagney/2005-02-23: This should be a boolean, and should Index: breakpoint.h =================================================================== RCS file: /cvs/src/src/gdb/breakpoint.h,v retrieving revision 1.114 diff -p -r1.114 breakpoint.h *** breakpoint.h 2 Apr 2010 01:18:34 -0000 1.114 --- breakpoint.h 3 Apr 2010 02:48:15 -0000 *************** extern struct breakpoint *get_tracepoint *** 1041,1047 **** is newly allocated; the caller should free when done with it. */ extern VEC(breakpoint_p) *all_tracepoints (void); ! extern int breakpoint_is_tracepoint (const struct breakpoint *b); /* Function that can be passed to read_command_line to validate that each command is suitable for tracepoint command list. */ --- 1041,1047 ---- is newly allocated; the caller should free when done with it. */ extern VEC(breakpoint_p) *all_tracepoints (void); ! extern int is_tracepoint (const struct breakpoint *b); /* Function that can be passed to read_command_line to validate that each command is suitable for tracepoint command list. */ Index: doc/gdb.texinfo =================================================================== RCS file: /cvs/src/src/gdb/doc/gdb.texinfo,v retrieving revision 1.693 diff -p -r1.693 gdb.texinfo *** doc/gdb.texinfo 1 Apr 2010 14:11:23 -0000 1.693 --- doc/gdb.texinfo 3 Apr 2010 02:48:16 -0000 *************** The @code{rbreak} command can be used to *** 3388,3394 **** @cindex @code{$_} and @code{info breakpoints} @item info breakpoints @r{[}@var{n}@r{]} @itemx info break @r{[}@var{n}@r{]} - @itemx info watchpoints @r{[}@var{n}@r{]} Print a table of all breakpoints, watchpoints, and catchpoints set and not deleted. Optional argument @var{n} means print information only about the specified breakpoint (or watchpoint or catchpoint). For --- 3388,3393 ---- *************** or written into by the program. *** 3705,3712 **** @kindex info watchpoints @r{[}@var{n}@r{]} @item info watchpoints ! This command prints a list of watchpoints, breakpoints, and catchpoints; ! it is the same as @code{info break} (@pxref{Set Breaks}). @end table @value{GDBN} sets a @dfn{hardware watchpoint} if possible. Hardware --- 3704,3711 ---- @kindex info watchpoints @r{[}@var{n}@r{]} @item info watchpoints ! This command prints a list of watchpoints, using the same format as ! @code{info break} (@pxref{Set Breaks}). @end table @value{GDBN} sets a @dfn{hardware watchpoint} if possible. Hardware *************** it had been deleted, but remembers the i *** 4135,4144 **** that you can @dfn{enable} it again later. You disable and enable breakpoints, watchpoints, and catchpoints with ! the @code{enable} and @code{disable} commands, optionally specifying one ! or more breakpoint numbers as arguments. Use @code{info break} or ! @code{info watch} to print a list of breakpoints, watchpoints, and ! catchpoints if you do not know which numbers to use. Disabling and enabling a breakpoint that has multiple locations affects all of its locations. --- 4134,4143 ---- that you can @dfn{enable} it again later. You disable and enable breakpoints, watchpoints, and catchpoints with ! the @code{enable} and @code{disable} commands, optionally specifying ! one or more breakpoint numbers as arguments. Use @code{info break} to ! print a list of all breakpoints, watchpoints, and catchpoints if you ! do not know which numbers to use. Disabling and enabling a breakpoint that has multiple locations affects all of its locations. Index: mi/mi-cmd-break.c =================================================================== RCS file: /cvs/src/src/gdb/mi/mi-cmd-break.c,v retrieving revision 1.32 diff -p -r1.32 mi-cmd-break.c *** mi/mi-cmd-break.c 23 Mar 2010 21:48:14 -0000 1.32 --- mi/mi-cmd-break.c 3 Apr 2010 02:48:16 -0000 *************** mi_cmd_break_commands (char *command, ch *** 303,309 **** mi_command_line_array_ptr = 1; mi_command_line_array_cnt = argc; ! if (breakpoint_is_tracepoint (b)) break_command = read_command_lines_1 (mi_read_next_line, 1, check_tracepoint_command, b); else --- 303,309 ---- mi_command_line_array_ptr = 1; mi_command_line_array_cnt = argc; ! if (is_tracepoint (b)) break_command = read_command_lines_1 (mi_read_next_line, 1, check_tracepoint_command, b); else Index: testsuite/gdb.base/completion.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.base/completion.exp,v retrieving revision 1.43 diff -p -r1.43 completion.exp *** testsuite/gdb.base/completion.exp 24 Mar 2010 21:28:13 -0000 1.43 --- testsuite/gdb.base/completion.exp 3 Apr 2010 02:48:16 -0000 *************** gdb_expect { *** 354,360 **** -re "^help info watchpoints $"\ { send_gdb "\n" gdb_expect { ! -re "Synonym for .*\r\n.*$gdb_prompt $"\ { pass "complete help info wat" } -re ".*$gdb_prompt $" { fail "complete help info wat"} timeout {fail "(timeout) complete help info wat"} --- 354,360 ---- -re "^help info watchpoints $"\ { send_gdb "\n" gdb_expect { ! -re "Status of watchpoints, .*\r\n.*$gdb_prompt $"\ { pass "complete help info wat" } -re ".*$gdb_prompt $" { fail "complete help info wat"} timeout {fail "(timeout) complete help info wat"} Index: testsuite/gdb.base/default.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.base/default.exp,v retrieving revision 1.36 diff -p -r1.36 default.exp *** testsuite/gdb.base/default.exp 24 Mar 2010 21:24:09 -0000 1.36 --- testsuite/gdb.base/default.exp 3 Apr 2010 02:48:16 -0000 *************** gdb_test "info vector" "The program has *** 353,359 **** #test info warranty gdb_test "info warranty" "15. *Disclaimer of Warranty.*" "info warranty" #test info watchpoints ! gdb_test "info watchpoints" "No breakpoints or watchpoints." "info watchpoints" #test inspect gdb_test "inspect" "The history is empty." "inspect" #test jump --- 353,359 ---- #test info warranty gdb_test "info warranty" "15. *Disclaimer of Warranty.*" "info warranty" #test info watchpoints ! gdb_test "info watchpoints" "No watchpoints." "info watchpoints" #test inspect gdb_test "inspect" "The history is empty." "inspect" #test jump Index: testsuite/gdb.base/help.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.base/help.exp,v retrieving revision 1.37 diff -p -r1.37 help.exp *** testsuite/gdb.base/help.exp 1 Jan 2010 07:32:01 -0000 1.37 --- testsuite/gdb.base/help.exp 3 Apr 2010 02:48:16 -0000 *************** gdb_test "help info variables" "All glob *** 294,300 **** # test help info warranty gdb_test "help info warranty" "Various kinds of warranty you do not have\." "help info warranty" # test help info watchpoints ! gdb_test "help info watchpoints" "Synonym for ``info breakpoints''\." "help info watchpoints" # test help inspect gdb_test "help inspect" "Same as \"print\" command, except that if you are running in the epoch\[\r\n\]+environment, the value is printed in its own window\." "help inspect" # test help jump --- 294,300 ---- # test help info warranty gdb_test "help info warranty" "Various kinds of warranty you do not have\." "help info warranty" # test help info watchpoints ! gdb_test "help info watchpoints" "Status of watchpoints, or watchpoint number NUMBER\." "help info watchpoints" # test help inspect gdb_test "help inspect" "Same as \"print\" command, except that if you are running in the epoch\[\r\n\]+environment, the value is printed in its own window\." "help inspect" # test help jump Index: testsuite/gdb.base/watchpoint.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.base/watchpoint.exp,v retrieving revision 1.23 diff -p -r1.23 watchpoint.exp *** testsuite/gdb.base/watchpoint.exp 1 Jan 2010 07:32:01 -0000 1.23 --- testsuite/gdb.base/watchpoint.exp 3 Apr 2010 02:48:16 -0000 *************** proc initialize {} { *** 102,110 **** } } ! # "info watch" is the same as "info break" ! ! if [gdb_test "info watch" "1\[ \]*breakpoint.*marker1.*\r\n2\[ \]*breakpoint.*marker2.*\r\n3\[ \]*.*watchpoint.*ival3" "watchpoint found in watchpoint/breakpoint table" ] { return 0; } --- 102,108 ---- } } ! if [gdb_test "info watch" "3\[ \]*.*watchpoint.*ival3" "watchpoint found in watchpoint/breakpoint table" ] { return 0; } *************** proc test_simple_watchpoint {} { *** 176,186 **** set wp_set 1 - # "info watch" is the same as "info break" - send_gdb "info watch\n" gdb_expect { ! -re "1\[ \]*breakpoint.*marker1.*\r\n2\[ \]*breakpoint.*marker2.*\r\n3\[ \]*.*watchpoint.*ival3\r\n$gdb_prompt $" { pass "watchpoint found in watchpoint/breakpoint table" } -re ".*$gdb_prompt $" { --- 174,182 ---- set wp_set 1 send_gdb "info watch\n" gdb_expect { ! -re "3\[ \]*.*watchpoint.*ival3\r\n$gdb_prompt $" { pass "watchpoint found in watchpoint/breakpoint table" } -re ".*$gdb_prompt $" { *************** proc test_disabling_watchpoints {} { *** 297,303 **** global hex # "info watch" is the same as "info break" ! gdb_test "info watch" "\[0-9\]+\[ \]*breakpoint.*marker1.*\r\n\[0-9\]+\[ \]*breakpoint.*marker2.*\r\n\[0-9]+\[ \]*.*watchpoint.*ival3\r\n\.*\[0-9\]+ times.*" "watchpoints found in watchpoint/breakpoint table" # Ensure that the watchpoint is disabled when we startup. --- 293,299 ---- global hex # "info watch" is the same as "info break" ! gdb_test "info watch" "\[0-9]+\[ \]*.*watchpoint.*ival3\r\n\.*\[0-9\]+ times.*" "watchpoints found in watchpoint/breakpoint table" # Ensure that the watchpoint is disabled when we startup. Index: testsuite/gdb.trace/infotrace.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.trace/infotrace.exp,v retrieving revision 1.14 diff -p -r1.14 infotrace.exp *** testsuite/gdb.trace/infotrace.exp 1 Jan 2010 07:32:07 -0000 1.14 --- testsuite/gdb.trace/infotrace.exp 3 Apr 2010 02:48:16 -0000 *************** gdb_test "info tracepoint $asm_test_num" *** 74,80 **** # 2.3 info tracepoint (invalid tracepoint number) gdb_test "info tracepoint [expr $c_test_num + $asm_test_num]" \ ! "No breakpoint or watchpoint number [expr $c_test_num + $asm_test_num]." \ "2.3: info tracepoint (invalid tracepoint number)" # 2.4 info tracepoints (list of numbers) --- 74,80 ---- # 2.3 info tracepoint (invalid tracepoint number) gdb_test "info tracepoint [expr $c_test_num + $asm_test_num]" \ ! "No tracepoint number [expr $c_test_num + $asm_test_num]." \ "2.3: info tracepoint (invalid tracepoint number)" # 2.4 info tracepoints (list of numbers)