Android-Hal-C++打印调用栈

debuggerdandroid的一个daemon进程,负责在进程出错异常时,将进程的运行时信息给dump出来供分析。
debuggerd的core dump数据,被保存在 /data/tombstone/ 目录下,共可保存10个文件,当超过10个时,会覆盖最早生产的文件。
在debug时,一般情况下,当程序出现异常时会自动将core dump信息保存起来。

当需要手动调试自己的程序并需要主动打印调用栈时,可以使用Android的callstack库。使用步骤如下:

  1. Android.bpshared_libs中增加如下选项
"libutils",
"libutilscallstack",

如果是Android.mk则增加如下选项

LOCAL_SHARED_LIBRARIES += libutils libutilscallstack
  1. 在源码中包含如下头文件
#include <utils/CallStack.h>
  1. 在需要打印调用栈的地方调用如下代码:
android::CallStack::logStack("CALLSTACK_DUMP");

或者

android::CallStack stack;
stack.update();
stack.dump(1);               //to stdout
stack.log("CALLSTACK_DUMP"); //to logcat

Android-Hal-C++打印调用栈相关推荐

  1. backtrace打印调用栈

    目录 1.backtrace打印调用栈 2.addr2line 1.backtrace打印调用栈 https://blog.csdn.net/hejinjing_tom_com/article/det ...

  2. php 打印函数调用栈,利用backtrace和backtrace_symbols函数打印调用栈信息

    本帖最后由 kylin_try 于 2017-2-6 08:41 编辑 在头文件"execinfo.h"中声明了三个函数用于获取当前线程的函数调用堆栈. #include int ...

  3. 使用Backtrace函数打印调用栈 - Debug居家必备

    glibc提供了backtrace这个库函数,可以用来打印call stack.比如我们可以在程序中注册常见的一些signal,比如SIGSEGMENT, SIGPIPE,然后在这些信号的回调函数中, ...

  4. java打印堆栈信息linux,在C/C++程序里打印调用栈信息(转载)

    原文出处  http://blog.csdn.net/yetyongjin/article/details/7759144 以下不能windows + mingw下执行.  windows下参考 ht ...

  5. linux 函数中打印调用栈

    一.内核中 To print the stack contents and a backtrace to the kernel log, use the #include <linux/kern ...

  6. python 打印调用栈

    import tracebackdef BBQ():traceback.print_stack() 引入 traceback 包,在某个函数中执行 traceback.print_stack(). 转 ...

  7. 如何利用JavaScript的arguments对象实现用代码打印调用栈的需求

    示例代码: <html> <script> function getCallStack() {var stack = "Callstack:", fn =a ...

  8. C语言获取程序崩溃信号,打印调用栈backtrace、backtrace_symbols、addr2line

    源程序 #include <stdio.h> #include <stdlib.h> #include <signal.h> #include <execin ...

  9. 关于ceph源码 backtrace 打印函数调用栈

    当集中精力看一个问题的时候,时间久了就会有这样一个状态,天空飘来五个字,那都不算事 ceph源码庞大的体量以及复杂的设计让很多人望而却步,尤其是大量的纯虚函数更是让读者迷失在代码的海洋,这个时候函数调 ...

最新文章

  1. jQuery样式操作
  2. php excel中解析显示html代码_骑士cms从任意文件包含到远程代码执行漏洞分析
  3. python3数据科学入门与实战_Python3学习之Python3数据科学入门与实战视频教程
  4. 阿里云自带的mysql_阿里云Centos使用自带mysql
  5. 10月25日学习内容整理:数据操作:增加更新删除,单表查询操作
  6. java extjs4 分页_extjs学习笔记(四)带分页的grid
  7. 利用OpenCV在picture控件中显示图片
  8. 斐讯盒子N1/T1_通用超精简刷机固件分享及教程
  9. 【UE·蓝图】UE4蓝图MediaPlayer注意事项
  10. 智能家居竞品分析:米家/HomeKit/美居/涂鸦智能的体验与思考
  11. 结对开发项目--石家庄地铁web版
  12. 刮刮乐html5效果,HTML5 简单实现刮刮乐效果
  13. 【JavaEE】网络基本概念与协议分层手术刀剖析
  14. vue族谱架构_基于 Vue 实现动态家谱图/组织结构图
  15. 即时通讯,1 天快速集成 支持单群聊、聊天室、系统通知等通信能力,安全可靠、 全球互通
  16. datagridview 单击某个单元格选中一行
  17. python 函数的参数 (必看)
  18. 跨越平台桌面应用开发框架electron使用的心路历程
  19. Ubuntu-13.04-X86_64安装GT630驱动
  20. 如何防止游戏检测出模拟器_【游戏教程】如何在模拟器运行完美世界

热门文章

  1. 中国菜刀下载及基础使用教程
  2. 逐梦C++之五:string类型
  3. opencv笔记(三)——调整运行窗口图片的大小
  4. linux颜色吸取工具,深度商店应用QElectroTech、Krita、深度取色器、深度截图
  5. [安装wireshark时,报“Error opening file for writing npf.sys”]
  6. YDOOK: STM32: 波特率的定义 波特率计算 波特率是什么?
  7. 什么是数字化?为什么需要数字化?
  8. 建设工程法规专科【6】
  9. Matlab MCR 7.14
  10. 可擦写光盘不能擦除和刻写_什么是可擦写光盘 什么时候要用到可擦洗光盘(擦除光盘)...