gdb/
authorSergio Durigan Junior <sergiodj@redhat.com>
Tue, 7 May 2013 17:04:29 +0000 (17:04 +0000)
committerSergio Durigan Junior <sergiodj@redhat.com>
Tue, 7 May 2013 17:04:29 +0000 (17:04 +0000)
2013-05-07  Sergio Durigan Junior  <sergiodj@redhat.com>

PR breakpoints/15413:
* breakpoint.c (condition_completer): Simplify the code to
disconsider multiple locations of breakpoints when completing the
"condition" command.

gdb/testsuite/
2013-05-07  Sergio Durigan Junior  <sergiodj@redhat.com>

PR breakpoints/15413:
* gdb.base/pending.exp: Add test for completion of the "condition"
command for pending breakpoints.
* gdb.linespec/linespec.ex: Add test for completion of the
"condition" command when dealing with multiple locations.

gdb/ChangeLog
gdb/breakpoint.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/pending.exp
gdb/testsuite/gdb.linespec/linespec.exp

index 40ceae66d7019e2f6ef2e3145f83024ced395376..2506ce5c5a4bc4f1e634123fcaf01194949989b9 100644 (file)
@@ -1,3 +1,10 @@
+2013-05-07  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+       PR breakpoints/15413:
+       * breakpoint.c (condition_completer): Simplify the code to
+       disconsider multiple locations of breakpoints when completing the
+       "condition" command.
+
 2013-05-07  Pierre Muller  <muller@sourceware.org>
 
        * common/linux-btrace.c: ARI fix: Include "gdb_wait.h"
index ef9c23c46422063534701a01b0de1cfe210f35bd..f4f9325ab6477efa6b614b3e9e6fe30fc9965257 100644 (file)
@@ -1012,27 +1012,14 @@ condition_completer (struct cmd_list_element *cmd,
       len = strlen (text);
 
       ALL_BREAKPOINTS (b)
-      {
-       int single = b->loc->next == NULL;
-       struct bp_location *loc;
-       int count = 1;
-
-       for (loc = b->loc; loc; loc = loc->next)
-         {
-           char location[50];
-
-           if (single)
-             xsnprintf (location, sizeof (location), "%d", b->number);
-           else
-             xsnprintf (location, sizeof (location),  "%d.%d", b->number,
-                        count);
+       {
+         char number[50];
 
-           if (strncmp (location, text, len) == 0)
-             VEC_safe_push (char_ptr, result, xstrdup (location));
+         xsnprintf (number, sizeof (number), "%d", b->number);
 
-           ++count;
-         }
-      }
+         if (strncmp (number, text, len) == 0)
+           VEC_safe_push (char_ptr, result, xstrdup (number));
+       }
 
       return result;
     }
index a33d6d0cf6d15bfbb675440142041fc3d8f544a2..333bf1c042dea986af0460f2c919cf95f1641b45 100644 (file)
@@ -1,3 +1,11 @@
+2013-05-07  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+       PR breakpoints/15413:
+       * gdb.base/pending.exp: Add test for completion of the "condition"
+       command for pending breakpoints.
+       * gdb.linespec/linespec.ex: Add test for completion of the
+       "condition" command when dealing with multiple locations.
+
 2013-05-07  Luis Machado  <lgustavo@codesourcery.com>
 
        * gdb.threads/wp-replication.c: New file.
index 68322f59e4adfcc14d39d2d63f8f729a10ea0518..1ab896abb027e2ee70d7cfa8299a7281a1aa74ba 100644 (file)
@@ -55,6 +55,9 @@ gdb_test_multiple "break pendfunc1" "set pending breakpoint" {
      }
 }
 
+# Complete the condition (PR 15413).
+gdb_test "complete condition " "condition 1"
+
 gdb_test "info break" \
     "Num     Type\[ \]+Disp Enb Address\[ \]+What.*
 \[0-9\]+\[\t \]+breakpoint     keep y.*PENDING.*pendfunc1.*" \
index 741ada0f94360dec79a950b46ca8faca5d631ffa..fe023656aaca7429eae55a2fe91e5270648806b6 100644 (file)
@@ -69,6 +69,10 @@ gdb_test "break dupname:label" \
     "Breakpoint $decimal at $hex: dupname:label. \[(\]2 locations\[)\]" \
     "multi-location break using duplicate function name and label"
 
+# Testing if the "condition" command completes only the breakpoints,
+# not the locations.
+gdb_test "complete condition " "condition $decimal\r\ncondition $decimal\r\ncondition $decimal"
+
 gdb_test_no_output "set breakpoint pending off" \
     "disable pending breakpoints for linespec tests"