Android5.1.1源碼 - 打印dalvik指令函數

Android5.1.1源碼 - 打印dalvik指令函數

@(Android研究)[android|打印dalvik指令]android


[TOC]c++


說明

Android5.1.1源碼中提供打印dalvik指令的函數,該函數名爲:TraceExecution,函數定義在文件"art/runtime/interpreter/interpreter_common.h"中,下面是該函數的部分源碼:函數

static inline void TraceExecution(const ShadowFrame& shadow_frame, const Instruction* inst,
                                  const uint32_t dex_pc, MethodHelper& mh)
    SHARED_LOCKS_REQUIRED(Locks::mutator_lock_) {
  constexpr bool kTracing = false;
  if (kTracing) {
    ......
  }
}

能夠發現該函數中的邏輯默認是不會執行的,這是由於kTracing等於false,當設置kTracing爲true時會打印出指令信息。ui

TraceExecution函數在ExecuteSwitchImpl函數中被調用,ExecuteSwitchImpl函數用於執行dalvik指令,該函數定義在文件"art/runtime/interpreter/interpreter_switch_impl.cc"中。code

相關文章
相關標籤/搜索