Android debug小技巧


Android C++打印函數調用棧

1、在Androd.mk文件中增加鏈接庫

LOCAL_SHARED_LIBRARIES := \
	libutilscallstack \

  或Android.bp的shared_libs中補上

shared_libs: [
    ....
    "libutilscallstack",
],

2、在對應cpp文件中修改代碼

#include <utils/CallStack.h>
 ...
android::CallStack stack;  
stack.update();
stack.log(LOG_TAG, ANDROID_LOG_ERROR, "stackdump:"); 

 

Android 系統服務中打印調用者進程ID

#include <binder/IPCThreadState.h>

IPCThreadState* ipc = IPCThreadState::self();
const int pid = ipc->getCallingPid();
const int uid = ipc->getCallingUid();
ALOGD("pid=%d, uid=%d", pid, uid);

 

Android Java程序中打印堆棧調用信息

Thread.dumpStack();

 

Android  HIDL HAL 服務中打印調用者進程ID

直接引入頭文件

#include <hwbinder/IPCThreadState.h>

 

然后

int pid = android::hardware::IPCThreadState::self()->getCallingPid();
int uid = android::hardware::IPCThreadState::self()->getCallingUid();
就可以獲調用者的PID/UID

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM