From: Keith Seitz Date: Mon, 5 May 2014 20:43:31 +0000 (-0700) Subject: Fix a dangling cleanup in linspec_parse_basic. X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=c888a17da5c7b06eec4b1ed21e4afe84f9a41347;p=deliverable%2Fbinutils-gdb.git 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. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index fc8b44a59f..e38a86a2fa 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 610809d44a..cb76b9c172 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 311b52862d..dbcf0ae1e1 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 2e35804e55..bccc40aa31 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\\\."