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 + + PR breakpoints/15117 + * linespec.c (linespec_parse_basic): Check for convenience + variable or history value while parsing. + 2013-07-15 Ali Anwar 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 + + * gdb.base/break.exp: Test break via convenience variable. + 2013-07-09 Joel Brobecker 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*"] {