diff --git a/debuggerd/libdebuggerd/tombstone.cpp b/debuggerd/libdebuggerd/tombstone.cpp index f5ecf48c5..418d09227 100644 --- a/debuggerd/libdebuggerd/tombstone.cpp +++ b/debuggerd/libdebuggerd/tombstone.cpp @@ -413,15 +413,17 @@ static void dump_all_maps(Backtrace* backtrace, BacktraceMap* map, log_t* log, p } ScopedBacktraceMapIteratorLock lock(map); - _LOG(log, logtype::MAPS, "\n"); - if (!print_fault_address_marker) { - _LOG(log, logtype::MAPS, "memory map:\n"); - } else { - _LOG(log, logtype::MAPS, "memory map: (fault address prefixed with --->)\n"); + _LOG(log, logtype::MAPS, + "\n" + "memory map (%zu entries):\n", + map->size()); + if (print_fault_address_marker) { if (map->begin() != map->end() && addr < map->begin()->start) { _LOG(log, logtype::MAPS, "--->Fault address falls at %s before any mapped regions\n", get_addr_string(addr).c_str()); print_fault_address_marker = false; + } else { + _LOG(log, logtype::MAPS, "(fault address prefixed with --->)\n"); } } diff --git a/libbacktrace/include/backtrace/BacktraceMap.h b/libbacktrace/include/backtrace/BacktraceMap.h index 963c34b64..6cf8b3fca 100644 --- a/libbacktrace/include/backtrace/BacktraceMap.h +++ b/libbacktrace/include/backtrace/BacktraceMap.h @@ -91,6 +91,8 @@ public: const_iterator begin() const { return maps_.begin(); } const_iterator end() const { return maps_.end(); } + size_t size() const { return maps_.size(); } + virtual bool Build(); static inline bool IsValid(const backtrace_map_t& map) {