自学内容网 自学内容网

android C++打印堆栈

Android在Java层打印堆栈比较方便,代码如下:

try {
            
    throw new Exception("Debug xxx call stack");
}catch(Exception e) {
     e.printStackTrace();
}

但是在C++模块中能打印调用堆栈吗?怎么打印调用栈呢?

答案是肯定的,步骤如下:

1.修改编译脚本Andorid.mk或者Android.bp

Android.mk

LOCAL_SHARED_LIBRARIES := \
   libutils \
   libutilscallstack

Android.bp

shared_libs: [
        "原来的内容",
        "libutils",
        "libutilscallstack",
    ],

2.修改c++文件,引入头文件,打印堆栈

#include <utils/CallStack.h>


void function() {
  android::CallStack stack;
  stack.update();
  stack.log("function stack");
}

3.注意事项

如果C++文件定义了命令空间,请把#include <utils/CallStack.h>放在name space定义之外


原文地址:https://blog.csdn.net/free555/article/details/138703928

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!