diff options
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/corelow.c | 14 |
2 files changed, 15 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index bf93e1b..a976442 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2020-10-22 Luis Machado <luis.machado@linaro.org> + + * corelow.c (core_target::xfer_partial): Also check for an empty + m_core_unavailable_mappings vector. + 2020-10-22 Andrew Burgess <andrew.burgess@embecosm.com> * expprint.c (dump_subexp_body_standard): Print RANGE_HAS_STRIDE. diff --git a/gdb/corelow.c b/gdb/corelow.c index d557475..a54d815 100644 --- a/gdb/corelow.c +++ b/gdb/corelow.c @@ -813,10 +813,16 @@ core_target::xfer_partial (enum target_object object, const char *annex, core file provided mappings (e.g. from .note.linuxcore.file or the like) as this should provide a more accurate result. If not, check the stratum beneath us, which should - be the file stratum. */ - if (!m_core_file_mappings.empty ()) - xfer_status = xfer_memory_via_mappings (readbuf, writebuf, offset, - len, xfered_len); + be the file stratum. + + We also check unavailable mappings due to Docker/AUFS driver + issues. */ + if (!m_core_file_mappings.empty () + || !m_core_unavailable_mappings.empty ()) + { + xfer_status = xfer_memory_via_mappings (readbuf, writebuf, offset, + len, xfered_len); + } else xfer_status = this->beneath ()->xfer_partial (object, annex, readbuf, writebuf, offset, len, |