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

Commit bb7ed014 authored by Andreas Gampe's avatar Andreas Gampe Committed by Android (Google) Code Review
Browse files

Merge "Do not do local unwinds through .oat or .dex maps." into nyc-dev

parents 8ac1b044 b035a19e
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);