aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Seitz <keiths@redhat.com>2014-05-05 13:43:31 -0700
committerKeith Seitz <keiths@redhat.com>2014-05-05 13:43:31 -0700
commitc888a17da5c7b06eec4b1ed21e4afe84f9a41347 (patch)
treed84756986c958ac1c429529dc038765eb0c7dbd2
parent290a839c9ab3d33d2a1b42431154b65624a81b0a (diff)
downloadgdb-c888a17da5c7b06eec4b1ed21e4afe84f9a41347.zip
gdb-c888a17da5c7b06eec4b1ed21e4afe84f9a41347.tar.gz
gdb-c888a17da5c7b06eec4b1ed21e4afe84f9a41347.tar.bz2
Fix a dangling cleanup in linspec_parse_basic.
2014-05-05 Keith Seitz <keiths@redhat.com> * linespec.c (linespec_parse_basic): Run cleanups if a convenience variable or history value is successfully parsed. 2014-05-05 Keith Seitz <keiths@redhat.com> * gdb.linespec/ls-dollar.exp: Add test for linespec file:convenience_variable.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/linespec.c4
-rw-r--r--gdb/testsuite/ChangeLog5
-rw-r--r--gdb/testsuite/gdb.linespec/ls-dollar.exp11
4 files changed, 24 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index fc8b44a..e38a86a 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2014-05-05 Keith Seitz <keiths@redhat.com>
+
+ * linespec.c (linespec_parse_basic): Run cleanups if a convenience
+ variable or history value is successfully parsed.
+
2014-05-05 Yao Qi <yao@codesourcery.com>
Pedro Alves <palves@redhat.com>
diff --git a/gdb/linespec.c b/gdb/linespec.c
index 610809d..cb76b9c 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 311b528..dbcf0ae 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2014-05-05 Keith Seitz <keiths@redhat.com>
+
+ * gdb.linespec/ls-dollar.exp: Add test for linespec
+ file:convenience_variable.
+
2014-05-05 Yao Qi <yao@codesourcery.com>
* 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 2e35804..bccc40a 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\\\."