From c888a17da5c7b06eec4b1ed21e4afe84f9a41347 Mon Sep 17 00:00:00 2001 From: Keith Seitz Date: Mon, 5 May 2014 13:43:31 -0700 Subject: [PATCH] Fix a dangling cleanup in linspec_parse_basic. 2014-05-05 Keith Seitz * linespec.c (linespec_parse_basic): Run cleanups if a convenience variable or history value is successfully parsed. 2014-05-05 Keith Seitz * gdb.linespec/ls-dollar.exp: Add test for linespec file:convenience_variable. --- gdb/ChangeLog | 5 +++++ gdb/linespec.c | 4 ++++ gdb/testsuite/ChangeLog | 5 +++++ gdb/testsuite/gdb.linespec/ls-dollar.exp | 11 ++++++++++- 4 files changed, 24 insertions(+), 1 deletion(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index fc8b44a59ff..e38a86a2fa9 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2014-05-05 Keith Seitz + + * linespec.c (linespec_parse_basic): Run cleanups if a convenience + variable or history value is successfully parsed. + 2014-05-05 Yao Qi Pedro Alves diff --git a/gdb/linespec.c b/gdb/linespec.c index 610809d44a0..cb76b9c1728 100644 --- a/gdb/linespec.c +++ b/gdb/linespec.c @@ -1665,6 +1665,10 @@ linespec_parse_basic (linespec_parser *parser) discard_cleanups (cleanup); return; } + + /* The convenience variable/history value parsed correctly. + NAME is no longer needed. */ + do_cleanups (cleanup); } else { diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 311b52862da..dbcf0ae1e13 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-05-05 Keith Seitz + + * gdb.linespec/ls-dollar.exp: Add test for linespec + file:convenience_variable. + 2014-05-05 Yao Qi * gdb.trace/unavailable.exp (gdb_collect_args_test): Save diff --git a/gdb/testsuite/gdb.linespec/ls-dollar.exp b/gdb/testsuite/gdb.linespec/ls-dollar.exp index 2e35804e550..bccc40aa318 100644 --- a/gdb/testsuite/gdb.linespec/ls-dollar.exp +++ b/gdb/testsuite/gdb.linespec/ls-dollar.exp @@ -30,7 +30,16 @@ if {[prepare_for_testing $testfile $exefile $srcfile \ gdb_test_no_output "set listsize 1" +set line [gdb_get_line_number {dollar_func}] + gdb_test "list \$dollar_var" \ ".*static int [string_to_regexp {$dollar_var}] = 0;" gdb_test "break \$dollar_func" \ - "Breakpoint $decimal at $hex: file .*$srcfile, line [gdb_get_line_number {dollar_func}]\\\." + "Breakpoint $decimal at $hex: file .*$srcfile, line $line\\\." + +gdb_test_no_output "set var \$theline = $line" +gdb_test "list $srcfile:\$theline" \ + ".*[string_to_regexp {/* dollar_func */}]" + +gdb_test "break $srcfile:\$theline" \ + "Breakpoint $decimal at $hex: file .*$srcfile, line $line\\\." -- 2.30.2