1. 程式人生 > >Android列印堆疊的方法

Android列印堆疊的方法

列印呼叫堆疊可以直接把問題發生時的函式呼叫關係打出來,非常有利於理解函式呼叫關係,這個對原始碼邏輯研究是很有幫助的。

Java

new Throwable().printStackTrace(); 

很簡單。

Native C++

在mk中要新增下面的庫:

LOCAL_SHARED_LIBRARIES := \
      libbinder \

包含下面標頭檔案:

include <utils/CallStack.h>
include <binder/IPCThreadState.h>

執行下面方法列印堆疊資訊:

CallStack cs("TAG"
);//列印堆疊資訊 pid_t pid = IPCThreadState::self()->getCallingPid(); ALOGV("call pid %d", pid);//列印程序ID