From 998580f1ccb7cf0b0940eff441d8a9e7ab8bb1cd Mon Sep 17 00:00:00 2001 From: Marc Khouzam Date: Mon, 21 Jan 2013 23:58:00 +0000 Subject: [PATCH] 2013-01-21 Marc Khouzam * breakpoint.c (print_one_breakpoint_location): Add MI field 'thread-groups' when printing a breakpoint. (output_thread_groups): New function. 2013-01-21 Marc Khouzam * gdb.texinfo (GDB/MI Breakpoint Commands): Document new 'thread-groups' field when printing a breakpoint in MI. 2013-01-21 Marc Khouzam * gdb.mi/mi-break.exp: Expect new 'thread-groups' field. * gdb.mi/mi-nsmoribund.exp: Expect new 'thread-groups' field. Also handle 'thread' field. * gdb.mi/mi-simplerun.exp: Expect new 'thread-groups' field. * gdb.mi/mi-watch.exp: Ditto. * lib/mi-support.exp: Ditto. --- gdb/ChangeLog | 6 +++ gdb/breakpoint.c | 88 ++++++++++++++++++++++++---------- gdb/doc/ChangeLog | 5 ++ gdb/doc/gdb.texinfo | 57 ++++++++++++++-------- gdb/testsuite/ChangeLog | 9 ++++ gdb/testsuite/gdb.mi/mi-break.exp | 8 ++-- gdb/testsuite/gdb.mi/mi-catch-load.exp | 4 +- gdb/testsuite/gdb.mi/mi-nsmoribund.exp | 5 +- gdb/testsuite/gdb.mi/mi-simplerun.exp | 2 +- gdb/testsuite/gdb.mi/mi-watch.exp | 6 +-- gdb/testsuite/lib/mi-support.exp | 8 ++-- 11 files changed, 136 insertions(+), 62 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index e5a767b..0dacd72 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -5,6 +5,12 @@ being invoked. (ExploreTypeCommand.invoke): Add a missing 'return'. +2013-01-21 Marc Khouzam + + * breakpoint.c (print_one_breakpoint_location): Add MI + field 'thread-groups' when printing a breakpoint. + (output_thread_groups): New function. + 2013-01-21 Tom Tromey * gdb_obstack.h (obconcat): Move declaration here, from... diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index 3ad9885..fd4132f 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -5805,6 +5805,51 @@ bptype_string (enum bptype type) return bptypes[(int) type].description; } +DEF_VEC_I(int); + +/* For MI, output a field named 'thread-groups' with a list as the value. + For CLI, prefix the list with the string 'inf'. */ + +static void +output_thread_groups (struct ui_out *uiout, + const char *field_name, + VEC(int) *inf_num, + int mi_only) +{ + struct cleanup *back_to = make_cleanup_ui_out_list_begin_end (uiout, + field_name); + int is_mi = ui_out_is_mi_like_p (uiout); + int inf; + int i; + + /* For backward compatibility, don't display inferiors in CLI unless + there are several. Always display them for MI. */ + if (!is_mi && mi_only) + return; + + for (i = 0; VEC_iterate (int, inf_num, i, inf); ++i) + { + if (is_mi) + { + char mi_group[10]; + + xsnprintf (mi_group, sizeof (mi_group), "i%d", inf); + ui_out_field_string (uiout, NULL, mi_group); + } + else + { + if (i == 0) + ui_out_text (uiout, " inf "); + else + ui_out_text (uiout, ", "); + + ui_out_text (uiout, plongest (inf)); + } + } + + do_cleanups (back_to); +} + /* Print B to gdb_stdout. */ static void @@ -5956,35 +6001,30 @@ print_one_breakpoint_location (struct breakpoint *b, } - /* For backward compatibility, don't display inferiors unless there - are several. */ - if (loc != NULL - && !header_of_multiple - && (allflag - || (!gdbarch_has_global_breakpoints (target_gdbarch ()) - && (number_of_program_spaces () > 1 - || number_of_inferiors () > 1) - /* LOC is for existing B, it cannot be in - moribund_locations and thus having NULL OWNER. */ - && loc->owner->type != bp_catchpoint))) + if (loc != NULL && !header_of_multiple) { struct inferior *inf; - int first = 1; + VEC(int) *inf_num = NULL; + int mi_only = 1; - for (inf = inferior_list; inf != NULL; inf = inf->next) + ALL_INFERIORS (inf) { if (inf->pspace == loc->pspace) - { - if (first) - { - first = 0; - ui_out_text (uiout, " inf "); - } - else - ui_out_text (uiout, ", "); - ui_out_text (uiout, plongest (inf->num)); - } + VEC_safe_push (int, inf_num, inf->num); } + + /* For backward compatibility, don't display inferiors in CLI unless + there are several. Always display for MI. */ + if (allflag + || (!gdbarch_has_global_breakpoints (target_gdbarch ()) + && (number_of_program_spaces () > 1 + || number_of_inferiors () > 1) + /* LOC is for existing B, it cannot be in + moribund_locations and thus having NULL OWNER. */ + && loc->owner->type != bp_catchpoint)) + mi_only = 0; + output_thread_groups (uiout, "thread-groups", inf_num, mi_only); + VEC_free (int, inf_num); } if (!part_of_multiple) @@ -7969,8 +8009,6 @@ catch_unload_command_1 (char *arg, int from_tty, catch_load_or_unload (arg, from_tty, 0, command); } -DEF_VEC_I(int); - /* An instance of this type is used to represent a syscall catchpoint. It includes a "struct breakpoint" as a kind of base class; users downcast to "struct breakpoint *" when needed. A breakpoint is diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index b53b7a8..662ec6d 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,8 @@ +2013-01-21 Marc Khouzam + + * gdb.texinfo (GDB/MI Breakpoint Commands): Document new + 'thread-groups' field when printing a breakpoint in MI. + 2012-01-17 Sanjoy Das * gdb.texinfo (Using JIT Debug Info Readers): Change documentation to reflect that jit-reader-load now supports absolute file-names. diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index 728e44b..ba25aac 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -28089,7 +28089,8 @@ For example, here is what the output of @code{-break-insert} -> -break-insert main <- ^done,bkpt=@{number="1",type="breakpoint",disp="keep", enabled="y",addr="0x08048564",func="main",file="myprog.c", - fullname="/home/nickrob/myprog.c",line="68",times="0"@} + fullname="/home/nickrob/myprog.c",line="68",thread-groups=["i1"], + times="0"@} <- (gdb) @end smallexample @@ -28184,7 +28185,8 @@ information of the breakpoint. -> -break-insert main <- ^done,bkpt=@{number="1",type="breakpoint",disp="keep", enabled="y",addr="0x08048564",func="main",file="myprog.c", - fullname="/home/nickrob/myprog.c",line="68",times="0"@} + fullname="/home/nickrob/myprog.c",line="68",thread-groups=["i1"], + times="0"@} <- (gdb) @end smallexample @@ -28308,7 +28310,8 @@ The corresponding @value{GDBN} command is @samp{ignore}. -break-insert main ^done,bkpt=@{number="1",type="breakpoint",disp="keep", enabled="y",addr="0x000100d0",func="main",file="hello.c", -fullname="/home/foo/hello.c",line="5",times="0"@} +fullname="/home/foo/hello.c",line="5",thread-groups=["i1"], +times="0"@} (gdb) -break-after 1 3 ~ @@ -28324,7 +28327,7 @@ hdr=[@{width="3",alignment="-1",col_name="number",colhdr="Num"@}, @{width="40",alignment="2",col_name="what",colhdr="What"@}], body=[bkpt=@{number="1",type="breakpoint",disp="keep",enabled="y", addr="0x000100d0",func="main",file="hello.c",fullname="/home/foo/hello.c", -line="5",times="0",ignore="3"@}]@} +line="5",thread-groups=["i1"],times="0",ignore="3"@}]@} (gdb) @end smallexample @@ -28360,7 +28363,8 @@ The corresponding @value{GDBN} command is @samp{commands}. -break-insert main ^done,bkpt=@{number="1",type="breakpoint",disp="keep", enabled="y",addr="0x000100d0",func="main",file="hello.c", -fullname="/home/foo/hello.c",line="5",times="0"@} +fullname="/home/foo/hello.c",line="5",thread-groups=["i1"], +times="0"@} (gdb) -break-commands 1 "print v" "continue" ^done @@ -28402,7 +28406,7 @@ hdr=[@{width="3",alignment="-1",col_name="number",colhdr="Num"@}, @{width="40",alignment="2",col_name="what",colhdr="What"@}], body=[bkpt=@{number="1",type="breakpoint",disp="keep",enabled="y", addr="0x000100d0",func="main",file="hello.c",fullname="/home/foo/hello.c", -line="5",cond="1",times="0",ignore="3"@}]@} +line="5",cond="1",thread-groups=["i1"],times="0",ignore="3"@}]@} (gdb) @end smallexample @@ -28474,7 +28478,7 @@ hdr=[@{width="3",alignment="-1",col_name="number",colhdr="Num"@}, @{width="40",alignment="2",col_name="what",colhdr="What"@}], body=[bkpt=@{number="2",type="breakpoint",disp="keep",enabled="n", addr="0x000100d0",func="main",file="hello.c",fullname="/home/foo/hello.c", -line="5",times="0"@}]@} +line="5",thread-groups=["i1"],times="0"@}]@} (gdb) @end smallexample @@ -28510,7 +28514,7 @@ hdr=[@{width="3",alignment="-1",col_name="number",colhdr="Num"@}, @{width="40",alignment="2",col_name="what",colhdr="What"@}], body=[bkpt=@{number="2",type="breakpoint",disp="keep",enabled="y", addr="0x000100d0",func="main",file="hello.c",fullname="/home/foo/hello.c", -line="5",times="0"@}]@} +line="5",thread-groups=["i1"],times="0"@}]@} (gdb) @end smallexample @@ -28606,11 +28610,13 @@ The corresponding @value{GDBN} commands are @samp{break}, @samp{tbreak}, (gdb) -break-insert main ^done,bkpt=@{number="1",addr="0x0001072c",file="recursive2.c", -fullname="/home/foo/recursive2.c,line="4",times="0"@} +fullname="/home/foo/recursive2.c,line="4",thread-groups=["i1"], +times="0"@} (gdb) -break-insert -t foo ^done,bkpt=@{number="2",addr="0x00010774",file="recursive2.c", -fullname="/home/foo/recursive2.c,line="11",times="0"@} +fullname="/home/foo/recursive2.c,line="11",thread-groups=["i1"], +times="0"@} (gdb) -break-list ^done,BreakpointTable=@{nr_rows="2",nr_cols="6", @@ -28622,15 +28628,18 @@ hdr=[@{width="3",alignment="-1",col_name="number",colhdr="Num"@}, @{width="40",alignment="2",col_name="what",colhdr="What"@}], body=[bkpt=@{number="1",type="breakpoint",disp="keep",enabled="y", addr="0x0001072c", func="main",file="recursive2.c", -fullname="/home/foo/recursive2.c,"line="4",times="0"@}, +fullname="/home/foo/recursive2.c,"line="4",thread-groups=["i1"], +times="0"@}, bkpt=@{number="2",type="breakpoint",disp="del",enabled="y", addr="0x00010774",func="foo",file="recursive2.c", -fullname="/home/foo/recursive2.c",line="11",times="0"@}]@} +fullname="/home/foo/recursive2.c",line="11",thread-groups=["i1"], +times="0"@}]@} (gdb) @c -break-insert -r foo.* @c ~int foo(int, int); @c ^done,bkpt=@{number="3",addr="0x00010774",file="recursive2.c, -@c "fullname="/home/foo/recursive2.c",line="11",times="0"@} +@c "fullname="/home/foo/recursive2.c",line="11",thread-groups=["i1"], +@c times="0"@} @c (gdb) @end smallexample @@ -28660,6 +28669,8 @@ memory location at which the breakpoint is set @item What logical location of the breakpoint, expressed by function name, file name, line number +@item Thread-groups +list of thread groups to which this breakpoint applies @item Times number of times the breakpoint has been hit @end table @@ -28684,10 +28695,11 @@ hdr=[@{width="3",alignment="-1",col_name="number",colhdr="Num"@}, @{width="10",alignment="-1",col_name="addr",colhdr="Address"@}, @{width="40",alignment="2",col_name="what",colhdr="What"@}], body=[bkpt=@{number="1",type="breakpoint",disp="keep",enabled="y", -addr="0x000100d0",func="main",file="hello.c",line="5",times="0"@}, +addr="0x000100d0",func="main",file="hello.c",line="5",thread-groups=["i1"], +times="0"@}, bkpt=@{number="2",type="breakpoint",disp="keep",enabled="y", addr="0x00010114",func="foo",file="hello.c",fullname="/home/foo/hello.c", -line="13",times="0"@}]@} +line="13",thread-groups=["i1"],times="0"@}]@} (gdb) @end smallexample @@ -28815,9 +28827,10 @@ hdr=[@{width="3",alignment="-1",col_name="number",colhdr="Num"@}, body=[bkpt=@{number="1",type="breakpoint",disp="keep",enabled="y", addr="0x00010734",func="callee4", file="../../../devo/gdb/testsuite/gdb.mi/basics.c", -fullname="/home/foo/devo/gdb/testsuite/gdb.mi/basics.c"line="8",times="1"@}, +fullname="/home/foo/devo/gdb/testsuite/gdb.mi/basics.c"line="8",thread-groups=["i1"], +times="1"@}, bkpt=@{number="2",type="watchpoint",disp="keep", -enabled="y",addr="",what="C",times="0"@}]@} +enabled="y",addr="",what="C",thread-groups=["i1"],times="0"@}]@} (gdb) -exec-continue ^running @@ -28839,9 +28852,10 @@ hdr=[@{width="3",alignment="-1",col_name="number",colhdr="Num"@}, body=[bkpt=@{number="1",type="breakpoint",disp="keep",enabled="y", addr="0x00010734",func="callee4", file="../../../devo/gdb/testsuite/gdb.mi/basics.c", -fullname="/home/foo/devo/gdb/testsuite/gdb.mi/basics.c",line="8",times="1"@}, +fullname="/home/foo/devo/gdb/testsuite/gdb.mi/basics.c",line="8",thread-groups=["i1"], +times="1"@}, bkpt=@{number="2",type="watchpoint",disp="keep", -enabled="y",addr="",what="C",times="-5"@}]@} +enabled="y",addr="",what="C",thread-groups=["i1"],times="-5"@}]@} (gdb) -exec-continue ^running @@ -28863,7 +28877,7 @@ body=[bkpt=@{number="1",type="breakpoint",disp="keep",enabled="y", addr="0x00010734",func="callee4", file="../../../devo/gdb/testsuite/gdb.mi/basics.c", fullname="/home/foo/devo/gdb/testsuite/gdb.mi/basics.c",line="8", -times="1"@}]@} +thread-groups=["i1"],times="1"@}]@} (gdb) @end smallexample @@ -33460,7 +33474,8 @@ No equivalent. -break-insert main ^done,bkpt=@{number="1",type="breakpoint",disp="keep",enabled="y", addr="0x080484ed",func="main",file="myprog.c", -fullname="/home/nickrob/myprog.c",line="73",times="0"@}, +fullname="/home/nickrob/myprog.c",line="73",thread-groups=["i1"], +times="0"@}, time=@{wallclock="0.05185",user="0.00800",system="0.00000"@} (gdb) -enable-timings no diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index ff27d23..1bae924 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -2,6 +2,15 @@ * gdb.python/py-explore.exp: Improve a test +2013-01-21 Marc Khouzam + + * gdb.mi/mi-break.exp: Expect new 'thread-groups' field. + * gdb.mi/mi-nsmoribund.exp: Expect new 'thread-groups' field. + Also handle 'thread' field. + * gdb.mi/mi-simplerun.exp: Expect new 'thread-groups' field. + * gdb.mi/mi-watch.exp: Ditto. + * lib/mi-support.exp: Ditto. + 2013-01-18  David Blaikie   * gdb.base/label.c (main): Correct the type of the second diff --git a/gdb/testsuite/gdb.mi/mi-break.exp b/gdb/testsuite/gdb.mi/mi-break.exp index 4c99a24..41f9dc1 100644 --- a/gdb/testsuite/gdb.mi/mi-break.exp +++ b/gdb/testsuite/gdb.mi/mi-break.exp @@ -93,7 +93,7 @@ proc test_tbreak_creation_and_listing {} { "insert temp breakpoint at \"\":\$line_callee4_head" mi_gdb_test "666-break-list" \ - "666\\\^done,BreakpointTable=\{nr_rows=\".\",nr_cols=\".\",hdr=\\\[\{width=\".*\",alignment=\".*\",col_name=\"number\",colhdr=\"Num\"\}.*colhdr=\"Type\".*colhdr=\"Disp\".*colhdr=\"Enb\".*colhdr=\"Address\".*colhdr=\"What\".*\\\],body=\\\[bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",${fullname},line=\"$line_main_body\",times=\"0\",original-location=\".*\"\}.*\\\]\}" \ + "666\\\^done,BreakpointTable=\{nr_rows=\".\",nr_cols=\".\",hdr=\\\[\{width=\".*\",alignment=\".*\",col_name=\"number\",colhdr=\"Num\"\}.*colhdr=\"Type\".*colhdr=\"Disp\".*colhdr=\"Enb\".*colhdr=\"Address\".*colhdr=\"What\".*\\\],body=\\\[bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",${fullname},line=\"$line_main_body\",thread-groups=\\\[\"i1\"\\\],times=\"0\",original-location=\".*\"\}.*\\\]\}" \ "list of breakpoints" mi_gdb_test "777-break-delete" \ @@ -142,7 +142,7 @@ proc test_rbreak_creation_and_listing {} { setup_kfail "*-*-*" mi/14270 mi_gdb_test "166-break-list" \ - "1\\\^done,BreakpointTable=\{nr_rows=\".\",nr_cols=\".\",hdr=\\\[\{width=\".*\",alignment=\".*\",col_name=\"number\",colhdr=\"Num\"\}.*colhdr=\"Type\".*colhdr=\"Disp\".*colhdr=\"Enb\".*colhdr=\"Address\".*colhdr=\"What\".*\\\],body=\\\[bkpt=\{number=\"5\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"$line_main_body\",times=\"0\"\},.*\}\\\]\}" \ + "1\\\^done,BreakpointTable=\{nr_rows=\".\",nr_cols=\".\",hdr=\\\[\{width=\".*\",alignment=\".*\",col_name=\"number\",colhdr=\"Num\"\}.*colhdr=\"Type\".*colhdr=\"Disp\".*colhdr=\"Enb\".*colhdr=\"Address\".*colhdr=\"What\".*\\\],body=\\\[bkpt=\{number=\"5\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"$line_main_body\",thread-groups=\\\[\"i1\"\\\],times=\"0\"\},.*\}\\\]\}" \ "list of breakpoints" mi_gdb_test "177-break-delete" \ @@ -208,7 +208,7 @@ proc test_disabled_creation {} { global line_callee2_body mi_gdb_test "-break-insert -d basics.c:callee2" \ - "\\^done,bkpt=\{number=\"6\",type=\"breakpoint\",disp=\"keep\",enabled=\"n\",addr=\"$hex\",func=\"callee2\",file=\".*basics.c\",fullname=\".*\",line=\"$line_callee2_body\",times=\"0\",original-location=\".*\"\}" \ + "\\^done,bkpt=\{number=\"6\",type=\"breakpoint\",disp=\"keep\",enabled=\"n\",addr=\"$hex\",func=\"callee2\",file=\".*basics.c\",fullname=\".*\",line=\"$line_callee2_body\",thread-groups=\\\[\"i1\"\\\],times=\"0\",original-location=\".*\"\}" \ "test disabled creation" mi_gdb_test "-break-delete" \ @@ -229,7 +229,7 @@ proc test_breakpoint_commands {} { "breakpoint commands: set commands" mi_gdb_test "-break-info 7" \ - "\\^done,BreakpointTable=\{nr_rows=\".\",nr_cols=\".\",hdr=\\\[\{width=\".*\",alignment=\".*\",col_name=\"number\",colhdr=\"Num\"\}.*colhdr=\"Type\".*colhdr=\"Disp\".*colhdr=\"Enb\".*colhdr=\"Address\".*colhdr=\"What\".*\\\],body=\\\[bkpt=\{number=\"7\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"callee2\",file=\".*basics.c\",${fullname},line=\"$line_callee2_body\",times=\"0\",script=\{\"print 10\",\"continue\"\},original-location=\".*\"\}.*\\\]\}" \ + "\\^done,BreakpointTable=\{nr_rows=\".\",nr_cols=\".\",hdr=\\\[\{width=\".*\",alignment=\".*\",col_name=\"number\",colhdr=\"Num\"\}.*colhdr=\"Type\".*colhdr=\"Disp\".*colhdr=\"Enb\".*colhdr=\"Address\".*colhdr=\"What\".*\\\],body=\\\[bkpt=\{number=\"7\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"callee2\",file=\".*basics.c\",${fullname},line=\"$line_callee2_body\",thread-groups=\\\[\"i1\"\\\],times=\"0\",script=\{\"print 10\",\"continue\"\},original-location=\".*\"\}.*\\\]\}" \ "breakpoint commands: check that commands are set" mi_gdb_test "-break-commands 7" \ diff --git a/gdb/testsuite/gdb.mi/mi-catch-load.exp b/gdb/testsuite/gdb.mi/mi-catch-load.exp index 7ebf225..64c1f11 100644 --- a/gdb/testsuite/gdb.mi/mi-catch-load.exp +++ b/gdb/testsuite/gdb.mi/mi-catch-load.exp @@ -49,7 +49,7 @@ mi_run_to_main # test -catch-load mi_gdb_test "111-gdb-set auto-solib-add on" "111\\^done" "catch-load: auto-solib-add on" mi_gdb_test "222-catch-load -t mi-catch-load-so.so*" \ - "222\\^done,bkpt=\{number=\"2\",type=\"catchpoint\",disp=\"del\",enabled=\"y\",what=\"load of library matching mi-catch-load-so\.so\\*\",catch-type=\"load\",times=\"0\"\}" \ + "222\\^done,bkpt=\{number=\"2\",type=\"catchpoint\",disp=\"del\",enabled=\"y\",what=\"load of library matching mi-catch-load-so\.so\\*\",catch-type=\"load\",thread-groups=\\\[\"i1\"\\\],times=\"0\"\}" \ "catch-load: catch load" mi_send_resuming_command "exec-continue" "catch-load: continue" @@ -76,7 +76,7 @@ mi_run_to_main # test -catch-unload mi_gdb_test "111-gdb-set auto-solib-add on" "111\\^done" "catch-unload: auto-solib-add on" mi_gdb_test "222-catch-unload -t mi-catch-load-so.so*" \ - "222\\^done,bkpt=\{number=\"2\",type=\"catchpoint\",disp=\"del\",enabled=\"y\",what=\"unload of library matching mi-catch-load-so\.so\\*\",catch-type=\"unload\",times=\"0\"\}" \ + "222\\^done,bkpt=\{number=\"2\",type=\"catchpoint\",disp=\"del\",enabled=\"y\",what=\"unload of library matching mi-catch-load-so\.so\\*\",catch-type=\"unload\",thread-groups=\\\[\"i1\"\\\],times=\"0\"\}" \ "catch-unload: catch unload" mi_send_resuming_command "exec-continue" "catch-unload: continue" diff --git a/gdb/testsuite/gdb.mi/mi-nsmoribund.exp b/gdb/testsuite/gdb.mi/mi-nsmoribund.exp index ba64dd6..5965873 100644 --- a/gdb/testsuite/gdb.mi/mi-nsmoribund.exp +++ b/gdb/testsuite/gdb.mi/mi-nsmoribund.exp @@ -79,8 +79,9 @@ mi_gdb_test "-thread-select 5" "\\^done.*" "select thread 5" mi_delete_breakpoints # Recreate the same breakpoint, but this time, specific to thread 5. -mi_create_breakpoint "-p 5 $srcfile:$bkpt_line" 3 keep thread_function .* .* .* \ - "thread specific breakpoint at thread_function" +mi_gdb_test "234-break-insert -p 5 $srcfile:$bkpt_line" \ + "234\\^done,bkpt=\{number=\"3\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\".*\",func=\"thread_function\",file=\".*\",fullname=\".*\",line=\".*\",thread-groups=\\\[\".*\"\\\],thread=\"5\",thread=\"5\",times=\"0\",original-location=\".*\"\}" \ + "thread specific breakpoint at thread_function" # Resume all threads. Only thread 5 should report a stop. diff --git a/gdb/testsuite/gdb.mi/mi-simplerun.exp b/gdb/testsuite/gdb.mi/mi-simplerun.exp index 8807645..ea03c16 100644 --- a/gdb/testsuite/gdb.mi/mi-simplerun.exp +++ b/gdb/testsuite/gdb.mi/mi-simplerun.exp @@ -79,7 +79,7 @@ proc test_breakpoints_creation_and_listing {} { "insert breakpoint at \"\":\$line_callee4_head" mi_gdb_test "204-break-list" \ - "204\\^done,BreakpointTable=\{.*,hdr=\\\[.*\\\],body=\\\[bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"$line_main_body\",times=\"0\",original-location=\".*\"\},.*\}\\\]\}" \ + "204\\^done,BreakpointTable=\{.*,hdr=\\\[.*\\\],body=\\\[bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"$line_main_body\",thread-groups=\\\[\"i1\"\\\],times=\"0\",original-location=\".*\"\},.*\}\\\]\}" \ "list of breakpoints" mi_gdb_test "205-break-disable 2 3 4" \ diff --git a/gdb/testsuite/gdb.mi/mi-watch.exp b/gdb/testsuite/gdb.mi/mi-watch.exp index efec081..1b9ae44 100644 --- a/gdb/testsuite/gdb.mi/mi-watch.exp +++ b/gdb/testsuite/gdb.mi/mi-watch.exp @@ -57,7 +57,7 @@ proc test_watchpoint_creation_and_listing {type} { "break-watch operation" mi_gdb_test "222-break-list" \ - "222\\\^done,BreakpointTable=\{nr_rows=\".\",nr_cols=\".\",hdr=\\\[\{width=\".*\",alignment=\".*\",col_name=\"number\",colhdr=\"Num\"\}.*colhdr=\"Type\".*colhdr=\"Disp\".*colhdr=\"Enb\".*colhdr=\"Address\".*colhdr=\"What\".*\\\],body=\\\[bkpt=\{number=\"2\",type=\".*watchpoint\",disp=\"keep\",enabled=\"y\",what=\"C\",times=\"0\",original-location=\"C\"\}\\\]\}" \ + "222\\\^done,BreakpointTable=\{nr_rows=\".\",nr_cols=\".\",hdr=\\\[\{width=\".*\",alignment=\".*\",col_name=\"number\",colhdr=\"Num\"\}.*colhdr=\"Type\".*colhdr=\"Disp\".*colhdr=\"Enb\".*colhdr=\"Address\".*colhdr=\"What\".*\\\],body=\\\[bkpt=\{number=\"2\",type=\".*watchpoint\",disp=\"keep\",enabled=\"y\",what=\"C\",thread-groups=\\\[\"i1\"\\\],times=\"0\",original-location=\"C\"\}\\\]\}" \ "list of watchpoints" } @@ -81,7 +81,7 @@ proc test_awatch_creation_and_listing {type} { "break-watch -a operation" mi_gdb_test "444-break-list" \ - "444\\^done,BreakpointTable=\{.*,hdr=\\\[.*\\\],body=\\\[bkpt=\{number=\"3\",type=\"watchpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"$line_main_body\",times=\"0\"\},.*\}\\\]\}" \ + "444\\^done,BreakpointTable=\{.*,hdr=\\\[.*\\\],body=\\\[bkpt=\{number=\"3\",type=\"watchpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"$line_main_body\",thread-groups=\\\[\"i1\"\\\],times=\"0\"\},.*\}\\\]\}" \ "list of watchpoints awatch" mi_gdb_test "777-break-delete 3" \ @@ -108,7 +108,7 @@ proc test_rwatch_creation_and_listing {type} { "break-watch -r operation" mi_gdb_test "300-break-list" \ - "300\\^done,BreakpointTable=\{.*,hdr=\\\[.*\\\],body=\\\[bkpt=\{number=\"5\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"$line_main_body\",times=\"0\"\},.*\}\\\}\}" \ + "300\\^done,BreakpointTable=\{.*,hdr=\\\[.*\\\],body=\\\[bkpt=\{number=\"5\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"$line_main_body\",thread-groups=\\\[\"i1\"\\\],times=\"0\"\},.*\}\\\}\}" \ "list of breakpoints" mi_gdb_test "177-break-delete 4" \ diff --git a/gdb/testsuite/lib/mi-support.exp b/gdb/testsuite/lib/mi-support.exp index 31b601f..afb255e 100644 --- a/gdb/testsuite/lib/mi-support.exp +++ b/gdb/testsuite/lib/mi-support.exp @@ -922,7 +922,7 @@ proc mi_runto_helper {func run_or_continue} { set test "mi runto $func" mi_gdb_test "200-break-insert -t $func" \ - "200\\^done,bkpt=\{number=\"\[0-9\]+\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"$func\(\\\(.*\\\)\)?\",file=\".*\",line=\"\[0-9\]*\",times=\"0\",original-location=\".*\"\}" \ + "200\\^done,bkpt=\{number=\"\[0-9\]+\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"$func\(\\\(.*\\\)\)?\",file=\".*\",line=\"\[0-9\]*\",thread-groups=\\\[\"i1\"\\\],times=\"0\",original-location=\".*\"\}" \ "breakpoint at $func" if {![regexp {number="[0-9]+"} $expect_out(buffer) str] @@ -1204,9 +1204,9 @@ proc mi0_continue_to { bkptno func args file line test } { # Creates a breakpoint and checks the reported fields are as expected proc mi_create_breakpoint { location number disp func file line address test } { - verbose -log "Expecting: 222\\^done,bkpt=\{number=\"$number\",type=\"breakpoint\",disp=\"$disp\",enabled=\"y\",addr=\"$address\",func=\"$func\",file=\"$file\",fullname=\".*\",line=\"$line\",times=\"0\",original-location=\".*\"\}" + verbose -log "Expecting: 222\\^done,bkpt=\{number=\"$number\",type=\"breakpoint\",disp=\"$disp\",enabled=\"y\",addr=\"$address\",func=\"$func\",file=\"$file\",fullname=\".*\",line=\"$line\",thread-groups=\\\[\".*\"\\\],times=\"0\",original-location=\".*\"\}" mi_gdb_test "222-break-insert $location" \ - "222\\^done,bkpt=\{number=\"$number\",type=\"breakpoint\",disp=\"$disp\",enabled=\"y\",addr=\"$address\",func=\"$func\",file=\"$file\",fullname=\".*\",line=\"$line\",times=\"0\",original-location=\".*\"\}" \ + "222\\^done,bkpt=\{number=\"$number\",type=\"breakpoint\",disp=\"$disp\",enabled=\"y\",addr=\"$address\",func=\"$func\",file=\"$file\",fullname=\".*\",line=\"$line\",thread-groups=\\\[\".*\"\\\],times=\"0\",original-location=\".*\"\}" \ $test } @@ -1227,7 +1227,7 @@ proc mi_list_breakpoints { expected test } { set file [lindex $item 3] set line [lindex $item 4] set address [lindex $item 5] - set body "${body}bkpt=\{number=\"$number\",type=\"breakpoint\",disp=\"$disp\",enabled=\"y\",addr=\"$address\",func=\"$func\",file=\".*$file\",${fullname},line=\"$line\",times=\"0\",original-location=\".*\"\}" + set body "${body}bkpt=\{number=\"$number\",type=\"breakpoint\",disp=\"$disp\",enabled=\"y\",addr=\"$address\",func=\"$func\",file=\".*$file\",${fullname},line=\"$line\",thread-groups=\\\[\"i1\"\\\],times=\"0\",original-location=\".*\"\}" set first 0 } -- 2.7.4