summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorqiyao <qiyao>2013-08-09 00:35:39 +0000
committerqiyao <qiyao>2013-08-09 00:35:39 +0000
commitcf86df5d2f6e849d476fe91b6affd2f2ab20cafc (patch)
treeb03978b712bf7e6ed33a13e2fc39fbc0facbcad4
parentae30380eb0975c4da4a16a1c6392320d009f4b87 (diff)
downloadgdb-cf86df5d2f6e849d476fe91b6affd2f2ab20cafc.tar.gz
gdb/
* stack.c (read_frame_arg): Set 'entryval_error' to NULL if 'entryval' is set. gdb/testsuite/ * gdb.trace/collection.exp (gdb_collect_args_test): Set "only" and "both" to 'print entry-values' before selecting trace frame.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/stack.c5
-rw-r--r--gdb/testsuite/ChangeLog6
-rw-r--r--gdb/testsuite/gdb.trace/collection.exp16
4 files changed, 31 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 13a9ccdaba5..e6e13ae9e1c 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2013-08-09 Yao Qi <yao@codesourcery.com>
+
+ * stack.c (read_frame_arg): Set 'entryval_error' to NULL if
+ 'entryval' is set.
+
2013-08-08 Azat Khuzhin <a3at.mail@gmail.com> (tiny change)
* gcore.c (create_gcore_bfd): Use tilde_expand.
diff --git a/gdb/stack.c b/gdb/stack.c
index 7d97dc83287..86932f8e7b7 100644
--- a/gdb/stack.c
+++ b/gdb/stack.c
@@ -469,7 +469,10 @@ read_frame_arg (struct symbol *sym, struct frame_info *frame,
|| print_entry_values == print_entry_values_both
|| (print_entry_values == print_entry_values_preferred
&& (!val || value_optimized_out (val))))
- entryval = allocate_optimized_out_value (SYMBOL_TYPE (sym));
+ {
+ entryval = allocate_optimized_out_value (SYMBOL_TYPE (sym));
+ entryval_error = NULL;
+ }
}
if ((print_entry_values == print_entry_values_compact
|| print_entry_values == print_entry_values_if_needed
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 5fb44e755dc..0b681f45cde 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2013-08-09 Yao Qi <yao@codesourcery.com>
+
+ * gdb.trace/collection.exp (gdb_collect_args_test): Set
+ "only" and "both" to 'print entry-values' before selecting
+ trace frame.
+
2013-08-08 Yao Qi <yao@codesourcery.com>
* gdb.trace/mi-trace-unavailable.exp: Don't set
diff --git a/gdb/testsuite/gdb.trace/collection.exp b/gdb/testsuite/gdb.trace/collection.exp
index f6d44ced7e1..ba0ada59bab 100644
--- a/gdb/testsuite/gdb.trace/collection.exp
+++ b/gdb/testsuite/gdb.trace/collection.exp
@@ -128,6 +128,22 @@ proc gdb_collect_args_test { myargs msg } {
# Begin the test.
run_trace_experiment $msg args_test_func
+ # Frame arguments and their entry values are displayed correctly with
+ # various values of "print entry-values" when a trace frame is
+ # selected.
+
+ gdb_test "tfind -1" ".*" ""
+ gdb_test_no_output "set print entry-values only" ""
+ gdb_test "tfind 0" \
+ " \\(argc@entry=\[^,\]*, argi@entry=\[^,\]*, argf@entry=\[^,\]*, argd@entry=\[^,\]*, argstruct@entry=\[^,\]*, argarray@entry=\[^,\]*\\) .*" \
+ "collect $msg: tfind 0 with entry-values only"
+
+ gdb_test "tfind -1" ".*" ""
+ gdb_test_no_output "set print entry-values both" ""
+ gdb_test "tfind 0" \
+ " \\(argc=\[^,\]*, argc@entry=\[^,\]*, argi=\[^,\]*, argi@entry=\[^,\]*, argf=\[^,\]*, argf@entry=\[^,\]*, argd=\[^,\]*, argd@entry=\[^,\]*, argstruct=\[^,\]*, argstruct@entry=\[^,\]*, argarray=\[^,\]*, argarray@entry=\[^,\]*\\) .*" \
+ "collect $msg: tfind 0 with entry-values both"
+
gdb_test "print argc" \
"\\$\[0-9\]+ = 1 '.001'$cr" \
"collect $msg: collected arg char"