aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorYao Qi <yao@codesourcery.com>2013-07-18 23:09:49 +0000
committerYao Qi <yao@codesourcery.com>2013-07-18 23:09:49 +0000
commit1527aea867d6a261dc133fed39c92ee74b45e7e3 (patch)
tree86ba329e3552b0c2f6550410dff4fad622c9095f /gdb
parent73c1d57e3e53233af477bda398107075c505e3e0 (diff)
downloadgdb-1527aea867d6a261dc133fed39c92ee74b45e7e3.zip
gdb-1527aea867d6a261dc133fed39c92ee74b45e7e3.tar.gz
gdb-1527aea867d6a261dc133fed39c92ee74b45e7e3.tar.bz2
gdb/
* target.c (update_current_target): Change the default action of 'to_traceframe_info' from tcomplain to return_zero. * target.h (struct target_ops) <to_traceframe_info>: Add more comments. * valops.c (read_value_memory): Call traceframe_available_memory unconditionally. gdb/testsuite/ * gdb.trace/read-memory.exp (test_from_remote): Update test. (teset_from_exec): Likewise.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog9
-rw-r--r--gdb/target.c2
-rw-r--r--gdb/target.h15
-rw-r--r--gdb/testsuite/ChangeLog5
-rw-r--r--gdb/testsuite/gdb.trace/read-memory.exp10
-rw-r--r--gdb/valops.c3
6 files changed, 32 insertions, 12 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 9bbce45..a95e05c 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,12 @@
+2013-07-19 Yao Qi <yao@codesourcery.com>
+
+ * target.c (update_current_target): Change the default action
+ of 'to_traceframe_info' from tcomplain to return_zero.
+ * target.h (struct target_ops) <to_traceframe_info>: Add more
+ comments.
+ * valops.c (read_value_memory): Call
+ traceframe_available_memory unconditionally.
+
2013-07-18 Yao Qi <yao@codesourcery.com>
* coffread.c (coff_symfile_read): Iterate over minimal symbols,
diff --git a/gdb/target.c b/gdb/target.c
index 3acd6c4..bc52ec4 100644
--- a/gdb/target.c
+++ b/gdb/target.c
@@ -962,7 +962,7 @@ update_current_target (void)
tcomplain);
de_fault (to_traceframe_info,
(struct traceframe_info * (*) (void))
- tcomplain);
+ return_zero);
de_fault (to_supports_evaluation_of_breakpoint_conditions,
(int (*) (void))
return_zero);
diff --git a/gdb/target.h b/gdb/target.h
index 2ba85d9..21e5792 100644
--- a/gdb/target.h
+++ b/gdb/target.h
@@ -854,9 +854,18 @@ struct target_ops
(const char *id);
/* Return a traceframe info object describing the current
- traceframe's contents. This method should not cache data;
- higher layers take care of caching, invalidating, and
- re-fetching when necessary. */
+ traceframe's contents. If the target doesn't support
+ traceframe info, return NULL. If the current traceframe is not
+ selected (the current traceframe number is -1), the target can
+ choose to return either NULL or an empty traceframe info. If
+ NULL is returned, for example in remote target, GDB will read
+ from the live inferior. If an empty traceframe info is
+ returned, for example in tfile target, which means the
+ traceframe info is available, but the requested memory is not
+ available in it. GDB will try to see if the requested memory
+ is available in the read-only sections. This method should not
+ cache data; higher layers take care of caching, invalidating,
+ and re-fetching when necessary. */
struct traceframe_info *(*to_traceframe_info) (void);
/* Ask the target to use or not to use agent according to USE. Return 1
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 7cd25a0..77658ad 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2013-07-19 Yao Qi <yao@codesourcery.com>
+ * gdb.trace/read-memory.exp (test_from_remote): Update test.
+ (teset_from_exec): Likewise.
+
+2013-07-19 Yao Qi <yao@codesourcery.com>
+
* gdb.trace/read-memory.c: New.
* gdb.trace/read-memory.exp: New.
diff --git a/gdb/testsuite/gdb.trace/read-memory.exp b/gdb/testsuite/gdb.trace/read-memory.exp
index bb59853..820ded3 100644
--- a/gdb/testsuite/gdb.trace/read-memory.exp
+++ b/gdb/testsuite/gdb.trace/read-memory.exp
@@ -103,9 +103,8 @@ proc test_from_remote { target } {
}
with_test_prefix "w/o setting traceframe" {
- gdb_test "print testglob" "Cannot access memory at address.*"
- gdb_test "print testglob_not_collected" \
- "Cannot access memory at address.*"
+ gdb_test "print testglob" " = <unavailable>"
+ gdb_test "print testglob_not_collected" " = <unavailable>"
gdb_test "print constglob" " = 10000"
gdb_test "print constglob_not_collected" " = 100"
}
@@ -140,9 +139,8 @@ proc teset_from_exec { target } {
"change to ${target} target"
with_test_prefix "exec to ${target} w/o setting traceframe" {
- gdb_test "print testglob" "Cannot access memory at address.*"
- gdb_test "print testglob_not_collected" \
- "Cannot access memory at address.*"
+ gdb_test "print testglob" " = <unavailable>"
+ gdb_test "print testglob_not_collected" " = <unavailable>"
gdb_test "print constglob" " = 10000"
gdb_test "print constglob_not_collected" " = 100"
}
diff --git a/gdb/valops.c b/gdb/valops.c
index 4161c2c..a3ab24f 100644
--- a/gdb/valops.c
+++ b/gdb/valops.c
@@ -955,8 +955,7 @@ read_value_memory (struct value *val, int embedded_offset,
{
VEC(mem_range_s) *available_memory;
- if (get_traceframe_number () < 0
- || !traceframe_available_memory (&available_memory, memaddr, length))
+ if (!traceframe_available_memory (&available_memory, memaddr, length))
{
if (stack)
read_stack (memaddr, buffer, length);