aboutsummaryrefslogtreecommitdiff
path: root/gdb/target.c
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2010-03-12 03:54:45 +0000
committerPedro Alves <palves@redhat.com>2010-03-12 03:54:45 +0000
commit2f4d88753bc52c1104d9418fb843154ee8ef610c (patch)
treedf75e60b273dfdeb5168e76d648c3c0dbb38b374 /gdb/target.c
parent313660f3955cc51ed17c55ecddd53ec1767721ad (diff)
downloadgdb-2f4d88753bc52c1104d9418fb843154ee8ef610c.zip
gdb-2f4d88753bc52c1104d9418fb843154ee8ef610c.tar.gz
gdb-2f4d88753bc52c1104d9418fb843154ee8ef610c.tar.bz2
* target.c (memory_xfer_partial): Don't use the stack cache if
inspecting trace frames. * tracepoint.c (finish_tfind_command): Invalidate the target dcache.
Diffstat (limited to 'gdb/target.c')
-rw-r--r--gdb/target.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gdb/target.c b/gdb/target.c
index 5f7a2e7..f253ee0 100644
--- a/gdb/target.c
+++ b/gdb/target.c
@@ -43,6 +43,7 @@
#include "solib.h"
#include "exec.h"
#include "inline-frame.h"
+#include "tracepoint.h"
static void target_info (char *, int);
@@ -1292,6 +1293,10 @@ memory_xfer_partial (struct target_ops *ops, enum target_object object,
inf = NULL;
if (inf != NULL
+ /* The dcache reads whole cache lines; that doesn't play well
+ with reading from a trace buffer, because reading outside of
+ the collected memory range fails. */
+ && get_traceframe_number () == -1
&& (region->attrib.cache
|| (stack_cache_enabled_p && object == TARGET_OBJECT_STACK_MEMORY)))
{