This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Fix for PR15117


Hi,

Attached patch fixes PR15117. I did regression testing be executing gdb.base/* tests.

Kindly review it.

Regards,
-Ali


Index: gdb/ChangeLog
===================================================================
RCS file: /cvs/src/src/gdb/ChangeLog,v
retrieving revision 1.15798
diff -u -r1.15798 ChangeLog
--- gdb/ChangeLog	15 Jul 2013 11:14:32 -0000	1.15798
+++ gdb/ChangeLog	30 Jul 2013 16:35:10 -0000
@@ -1,3 +1,9 @@
+2013-07-30 Ali Anwar  <ali_anwar@codesourcery.com>
+
+	PR breakpoints/15117
+	* linespec.c (linespec_parse_basic): Check for convenience
+	variable or history value while parsing.
+
 2013-07-15  Ali Anwar  <ali_anwar@codesourcery.com>
 
 	PR threads/13217
Index: gdb/linespec.c
===================================================================
RCS file: /cvs/src/src/gdb/linespec.c,v
retrieving revision 1.185
diff -u -r1.185 linespec.c
--- gdb/linespec.c	30 May 2013 16:57:38 -0000	1.185
+++ gdb/linespec.c	30 Jul 2013 16:33:43 -0000
@@ -1660,6 +1660,17 @@
 	  symbols = NULL;
 	  discard_cleanups (cleanup);
 	}
+      else if (token.type == LSTOKEN_STRING && *LS_TOKEN_STOKEN (token).ptr == '$')
+	{
+	  char *var;
+
+	  /* User specified a convenience variable or history value.  */
+	  var = copy_token_string (token);
+	  cleanup = make_cleanup (xfree, var);
+	  PARSER_RESULT (parser)->line_offset
+	    = linespec_parse_variable (PARSER_STATE (parser), var);
+	  do_cleanups (cleanup);
+	}
       else
 	{
 	  /* The name is also not a label.  Abort parsing.  Do not throw
Index: gdb/testsuite/ChangeLog
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/ChangeLog,v
retrieving revision 1.3727
diff -u -r1.3727 ChangeLog
--- gdb/testsuite/ChangeLog	10 Jul 2013 00:10:36 -0000	1.3727
+++ gdb/testsuite/ChangeLog	30 Jul 2013 16:29:01 -0000
@@ -1,3 +1,7 @@
+2013-07-30  Ali Anwar  <alianwar@codesourcery.com>
+
+	* gdb.base/break.exp: Test break via convenience variable.
+
 2013-07-09  Joel Brobecker  <brobecker@adacore.com>
Index: gdb/testsuite/gdb.base/break.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/break.exp,v
retrieving revision 1.58
diff -u -r1.58 break.exp
--- gdb/testsuite/gdb.base/break.exp	7 Jun 2013 17:31:07 -0000	1.58
+++ gdb/testsuite/gdb.base/break.exp	30 Jul 2013 16:29:01 -0000
@@ -957,6 +957,18 @@
     }
 }
 
+#
+# test break via convenience variable
+#
+send_gdb "set \$l = 92\n"
+gdb_expect {
+     -re ".*$gdb_prompt $"       { pass "Set convenience variable" }
+    timeout                 { fail "Set convenience variable (timeout)" }
+}
+
+gdb_test "break $srcfile:\$l" \
+    "Breakpoint.*at.* file .*$srcfile, line 92." \
+    "breakpoint convenience variable"
 
 # Reset the default arguments for VxWorks
 if [istarget "*-*-vxworks*"] {

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]