* breakpoint.c (print_one_catch_fork, print_one_catch_vfork)
authorTom Tromey <tromey@redhat.com>
Wed, 16 Jan 2013 17:27:53 +0000 (17:27 +0000)
committerTom Tromey <tromey@redhat.com>
Wed, 16 Jan 2013 17:27:53 +0000 (17:27 +0000)
(print_one_catch_solib, print_one_catch_syscall)
(print_one_catch_exec, print_one_exception_catchpoint): Emit
"catch-type".
gdb/doc
* gdb.texinfo (GDB/MI Breakpoint Information): Document
"catch-type" field.
(GDB/MI Catchpoint Commands): Add "catch-type" to examples.
gdb/testsuite
* gdb.mi/mi-catch-load.exp: Look for "catch-type".

gdb/ChangeLog
gdb/breakpoint.c
gdb/doc/ChangeLog
gdb/doc/gdb.texinfo
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.mi/mi-catch-load.exp

index 1014bb4..f595d2e 100644 (file)
@@ -1,3 +1,10 @@
+2013-01-16  Tom Tromey  <tromey@redhat.com>
+
+       * breakpoint.c (print_one_catch_fork, print_one_catch_vfork)
+       (print_one_catch_solib, print_one_catch_syscall)
+       (print_one_catch_exec, print_one_exception_catchpoint): Emit
+       "catch-type".
+
 2013-01-16  Yao Qi  <yao@codesourcery.com>
 
        * printcmd.c (current_display_number): Make it static.
index 4d76fa1..bd6ceb8 100644 (file)
@@ -7529,6 +7529,9 @@ print_one_catch_fork (struct breakpoint *b, struct bp_location **last_loc)
                         ptid_get_pid (c->forked_inferior_pid));
       ui_out_spaces (uiout, 1);
     }
+
+  if (ui_out_is_mi_like_p (uiout))
+    ui_out_field_string (uiout, "catch-type", "fork");
 }
 
 /* Implement the "print_mention" breakpoint_ops method for fork
@@ -7642,6 +7645,9 @@ print_one_catch_vfork (struct breakpoint *b, struct bp_location **last_loc)
                         ptid_get_pid (c->forked_inferior_pid));
       ui_out_spaces (uiout, 1);
     }
+
+  if (ui_out_is_mi_like_p (uiout))
+    ui_out_field_string (uiout, "catch-type", "vfork");
 }
 
 /* Implement the "print_mention" breakpoint_ops method for vfork
@@ -7840,6 +7846,10 @@ print_one_catch_solib (struct breakpoint *b, struct bp_location **locs)
     }
   ui_out_field_string (uiout, "what", msg);
   xfree (msg);
+
+  if (ui_out_is_mi_like_p (uiout))
+    ui_out_field_string (uiout, "catch-type",
+                        self->is_load ? "load" : "unload");
 }
 
 static void
@@ -8251,6 +8261,9 @@ print_one_catch_syscall (struct breakpoint *b,
   else
     ui_out_field_string (uiout, "what", "<any syscall>");
   ui_out_text (uiout, "\" ");
+
+  if (ui_out_is_mi_like_p (uiout))
+    ui_out_field_string (uiout, "catch-type", "syscall");
 }
 
 /* Implement the "print_mention" breakpoint_ops method for syscall
@@ -8488,6 +8501,9 @@ print_one_catch_exec (struct breakpoint *b, struct bp_location **last_loc)
       ui_out_field_string (uiout, "what", c->exec_pathname);
       ui_out_text (uiout, "\" ");
     }
+
+  if (ui_out_is_mi_like_p (uiout))
+    ui_out_field_string (uiout, "catch-type", "exec");
 }
 
 static void
@@ -11536,9 +11552,17 @@ print_one_exception_catchpoint (struct breakpoint *b,
   if (b->loc)
     *last_loc = b->loc;
   if (strstr (b->addr_string, "throw") != NULL)
-    ui_out_field_string (uiout, "what", "exception throw");
+    {
+      ui_out_field_string (uiout, "what", "exception throw");
+      if (ui_out_is_mi_like_p (uiout))
+       ui_out_field_string (uiout, "catch-type", "throw");
+    }
   else
-    ui_out_field_string (uiout, "what", "exception catch");
+    {
+      ui_out_field_string (uiout, "what", "exception catch");
+      if (ui_out_is_mi_like_p (uiout))
+       ui_out_field_string (uiout, "catch-type", "catch");
+    }
 }
 
 static void
index 0eb574d..906e56f 100644 (file)
@@ -1,3 +1,9 @@
+2013-01-16  Tom Tromey  <tromey@redhat.com>
+
+       * gdb.texinfo (GDB/MI Breakpoint Information): Document
+       "catch-type" field.
+       (GDB/MI Catchpoint Commands): Add "catch-type" to examples.
+
 2013-01-07  Tom Tromey  <tromey@redhat.com>
 
        * gdb.texinfo (Mode Options): Don't mention -epoch.
index f973263..89dc010 100644 (file)
@@ -27957,6 +27957,10 @@ of a multi-location breakpoint, this will be a dotted pair, like
 The type of the breakpoint.  For ordinary breakpoints this will be
 @samp{breakpoint}, but many values are possible.
 
+@item catch-type
+If the type of the breakpoint is @samp{catchpoint}, then this
+indicates the exact type of catchpoint.
+
 @item disp
 This is the breakpoint disposition---either @samp{del}, meaning that
 the breakpoint will be deleted at the next stop, or @samp{keep},
@@ -28867,7 +28871,7 @@ The corresponding @value{GDBN} command is @samp{catch load}.
 @smallexample
 -catch-load -t foo.so
 ^done,bkpt=@{number="1",type="catchpoint",disp="del",enabled="y",
-what="load of library matching foo.so",times="0"@}
+what="load of library matching foo.so",catch-type="load",times="0"@}
 (gdb)
 @end smallexample
 
@@ -28896,7 +28900,7 @@ The corresponding @value{GDBN} command is @samp{catch unload}.
 @smallexample
 -catch-unload -d bar.so
 ^done,bkpt=@{number="2",type="catchpoint",disp="keep",enabled="n",
-what="load of library matching bar.so",times="0"@}
+what="load of library matching bar.so",catch-type="unload",times="0"@}
 (gdb)
 @end smallexample
 
index d34f7c0..21d01cc 100644 (file)
@@ -1,3 +1,7 @@
+2013-01-16  Tom Tromey  <tromey@redhat.com>
+
+       * gdb.mi/mi-catch-load.exp: Look for "catch-type".
+
 2013-01-15  Jan Kratochvil  <jan.kratochvil@redhat.com>
 
        * gdb.dwarf2/dw2-restrict.exp: Skip compilation on non-x86_64 targets.
index 34494a2..7ebf225 100644 (file)
@@ -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\\*\",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\",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\\*\",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\",times=\"0\"\}" \
     "catch-unload: catch unload"
 mi_send_resuming_command "exec-continue" "catch-unload: continue"