Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bfb7328f authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Untag addresses in registers before looking up the mapping." am:...

Merge "Untag addresses in registers before looking up the mapping." am: 3f24fefe am: e1d8d0a0 am: 10539003

Original change: https://android-review.googlesource.com/c/platform/system/core/+/1578504

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I805adc8773716c4805f0161f63bbb26af9a61151
parents 6cf54332 10539003
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -374,11 +374,11 @@ TEST_F(CrasherTest, heap_addr_in_register) {
  ConsumeFd(std::move(output_fd), &result);

#if defined(__aarch64__)
  ASSERT_MATCH(result, "memory near x0");
  ASSERT_MATCH(result, "memory near x0 \\(\\[anon:");
#elif defined(__arm__)
  ASSERT_MATCH(result, "memory near r0");
  ASSERT_MATCH(result, "memory near r0 \\(\\[anon:");
#elif defined(__x86_64__)
  ASSERT_MATCH(result, "memory near rdi");
  ASSERT_MATCH(result, "memory near rdi \\(\\[anon:");
#else
  ASSERT_TRUE(false) << "unsupported architecture";
#endif
+2 −1
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@
#include <android-base/unique_fd.h>
#include <android/log.h>
#include <async_safe/log.h>
#include <bionic/macros.h>
#include <log/log.h>
#include <log/log_read.h>
#include <log/logprint.h>
@@ -362,7 +363,7 @@ void dump_memory_and_code(log_t* log, unwindstack::Maps* maps, unwindstack::Memo
  regs->IterateRegisters([log, maps, memory](const char* reg_name, uint64_t reg_value) {
    std::string label{"memory near "s + reg_name};
    if (maps) {
      unwindstack::MapInfo* map_info = maps->Find(reg_value);
      unwindstack::MapInfo* map_info = maps->Find(untag_address(reg_value));
      if (map_info != nullptr && !map_info->name.empty()) {
        label += " (" + map_info->name + ")";
      }
+2 −1
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@
#include <android-base/unique_fd.h>

#include <android/log.h>
#include <bionic/macros.h>
#include <log/log.h>
#include <log/log_read.h>
#include <log/logprint.h>
@@ -233,7 +234,7 @@ static void dump_thread(Tombstone* tombstone, unwindstack::Unwinder* unwinder,

          dump.set_register_name(name);

          unwindstack::MapInfo* map_info = maps->Find(value);
          unwindstack::MapInfo* map_info = maps->Find(untag_address(value));
          if (map_info) {
            dump.set_mapping_name(map_info->name);
          }