Make the dcache (code/stack cache) handle line reading errors better
authorPedro Alves <palves@redhat.com>
Wed, 21 May 2014 12:58:16 +0000 (13:58 +0100)
committerPedro Alves <palves@redhat.com>
Wed, 21 May 2014 12:58:16 +0000 (13:58 +0100)
commit0256a6ac4b25d56da14cbbe3cda9977f9c7c13eb
tree4c65c9b8b0248d95c77b12fd6a148e98527fe1db
parenta6e3e144a3b73c6a5a1ca2e403c53512d852d940
Make the dcache (code/stack cache) handle line reading errors better

The dcache (code/stack cache) is supposed to be transparent, but it's
actually not in one case.  dcache tries to read chunks (cache lines)
at a time off of the target.  This may end up trying to read
unaccessible or unavailable memory.  Currently the caller gets an xfer
error in this case.  But if the specific bits of memory the caller
actually wanted are available and accessible, then the caller should
get the memory it wanted, not an error.

gdb/
2014-05-21  Pedro Alves  <palves@redhat.com>

* dcache.c (dcache_read_memory_partial): If reading the cache line
fails, fallback to reading just the memory the caller wanted.

gdb/testsuite/
2014-05-21  Pedro Alves  <palves@redhat.com>

* gdb.base/dcache-line-read-error.c: New.
* gdb.base/dcache-line-read-error.exp: New.
gdb/ChangeLog
gdb/dcache.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/dcache-line-read-error.c [new file with mode: 0644]
gdb/testsuite/gdb.base/dcache-line-read-error.exp [new file with mode: 0644]