diff options
author | Yao Qi <yao@codesourcery.com> | 2013-07-18 23:09:49 +0000 |
---|---|---|
committer | Yao Qi <yao@codesourcery.com> | 2013-07-18 23:09:49 +0000 |
commit | 1527aea867d6a261dc133fed39c92ee74b45e7e3 (patch) | |
tree | 86ba329e3552b0c2f6550410dff4fad622c9095f /gdb | |
parent | 73c1d57e3e53233af477bda398107075c505e3e0 (diff) | |
download | gdb-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/ChangeLog | 9 | ||||
-rw-r--r-- | gdb/target.c | 2 | ||||
-rw-r--r-- | gdb/target.h | 15 | ||||
-rw-r--r-- | gdb/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/testsuite/gdb.trace/read-memory.exp | 10 | ||||
-rw-r--r-- | gdb/valops.c | 3 |
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); |