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

Commit bf89fc79 authored by Christopher Ferris's avatar Christopher Ferris Committed by android-build-merger
Browse files

Merge "Do not do local unwinds through .oat or .dex maps."

am: 48d930d0

* commit '48d930d0':
  Do not do local unwinds through .oat or .dex maps.
parents 4cc3354f 48d930d0
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@
#define UNW_LOCAL_ONLY
#include <libunwind.h>

#include <android-base/strings.h>
#include <backtrace/Backtrace.h>

#include "BacktraceLog.h"
@@ -124,6 +125,16 @@ bool UnwindCurrent::UnwindFromContext(size_t num_ignore_frames, ucontext_t* ucon
        num_ignore_frames--;
      }
    }

    // For now, do not attempt to do local unwinds through .dex, or .oat
    // maps. We can only unwind through these if there is a compressed
    // section available, almost all local unwinds are done by ART
    // which will dump the Java frames separately.
    // TODO: Come up with a flag to control this.
    if (android::base::EndsWith(frame->map.name, ".dex")
        || android::base::EndsWith(frame->map.name, ".oat")) {
      break;
    }
    ret = unw_step (cursor.get());
  } while (ret > 0 && num_frames < MAX_BACKTRACE_FRAMES);