Android5.1.1源码 - 打印dalvik指令函数
@(Android研究)[android|打印dalvik指令]
[TOC]
说明
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时会打印出指令信息。
TraceExecution函数在ExecuteSwitchImpl函数中被调用,ExecuteSwitchImpl函数用于执行dalvik指令,该函数定义在文件"art/runtime/interpreter/interpreter_switch_impl.cc"中。