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定义之外

相关推荐

  1. android c++打印堆栈

    2024-05-11 11:36:09       69 阅读
  2. 获取Android Native堆栈

    2024-05-11 11:36:09       35 阅读
  3. OD(4)之libunwind打印堆栈信息

    2024-05-11 11:36:09       49 阅读
  4. linux捕获特定的信号并打印堆栈信息

    2024-05-11 11:36:09       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-11 11:36:09       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-11 11:36:09       106 阅读
  3. 在Django里面运行非项目文件

    2024-05-11 11:36:09       87 阅读
  4. Python语言-面向对象

    2024-05-11 11:36:09       96 阅读

热门阅读

  1. 【贪心算法】Leetcode 134. 加油站【中等】

    2024-05-11 11:36:09       34 阅读
  2. Unity构建详解(12)——自动构建

    2024-05-11 11:36:09       27 阅读
  3. AlmaLinux 文件重命名 mv命令用法示例

    2024-05-11 11:36:09       33 阅读
  4. pnpm包管理工具的理解

    2024-05-11 11:36:09       31 阅读
  5. 根据地址栏url上key获取值

    2024-05-11 11:36:09       34 阅读
  6. JVM进程缓存 Caffeine

    2024-05-11 11:36:09       30 阅读