Android-Hal-C++打印调用栈
Android-Hal-C++打印调用栈
debuggerd
是android
的一个daemon
进程,负责在进程出错异常时,将进程的运行时信息给dump出来供分析。
debuggerd
的core dump数据,被保存在 /data/tombstone/
目录下,共可保存10个文件,当超过10个时,会覆盖最早生产的文件。
在debug时,一般情况下,当程序出现异常时会自动将core dump信息保存起来。
当需要手动调试自己的程序并需要主动打印调用栈时,可以使用Android的callstack库。使用步骤如下:
- 在
Android.bp
的shared_libs
中增加如下选项
"libutils",
"libutilscallstack",
如果是Android.mk
则增加如下选项
LOCAL_SHARED_LIBRARIES += libutils libutilscallstack
- 在源码中包含如下头文件
#include <utils/CallStack.h>
- 在需要打印调用栈的地方调用如下代码:
android::CallStack::logStack("CALLSTACK_DUMP");
或者
android::CallStack stack;
stack.update();
stack.dump(1); //to stdout
stack.log("CALLSTACK_DUMP"); //to logcat
Android-Hal-C++打印调用栈相关推荐
- backtrace打印调用栈
目录 1.backtrace打印调用栈 2.addr2line 1.backtrace打印调用栈 https://blog.csdn.net/hejinjing_tom_com/article/det ...
- php 打印函数调用栈,利用backtrace和backtrace_symbols函数打印调用栈信息
本帖最后由 kylin_try 于 2017-2-6 08:41 编辑 在头文件"execinfo.h"中声明了三个函数用于获取当前线程的函数调用堆栈. #include int ...
- 使用Backtrace函数打印调用栈 - Debug居家必备
glibc提供了backtrace这个库函数,可以用来打印call stack.比如我们可以在程序中注册常见的一些signal,比如SIGSEGMENT, SIGPIPE,然后在这些信号的回调函数中, ...
- java打印堆栈信息linux,在C/C++程序里打印调用栈信息(转载)
原文出处 http://blog.csdn.net/yetyongjin/article/details/7759144 以下不能windows + mingw下执行. windows下参考 ht ...
- linux 函数中打印调用栈
一.内核中 To print the stack contents and a backtrace to the kernel log, use the #include <linux/kern ...
- python 打印调用栈
import tracebackdef BBQ():traceback.print_stack() 引入 traceback 包,在某个函数中执行 traceback.print_stack(). 转 ...
- 如何利用JavaScript的arguments对象实现用代码打印调用栈的需求
示例代码: <html> <script> function getCallStack() {var stack = "Callstack:", fn =a ...
- C语言获取程序崩溃信号,打印调用栈backtrace、backtrace_symbols、addr2line
源程序 #include <stdio.h> #include <stdlib.h> #include <signal.h> #include <execin ...
- 关于ceph源码 backtrace 打印函数调用栈
当集中精力看一个问题的时候,时间久了就会有这样一个状态,天空飘来五个字,那都不算事 ceph源码庞大的体量以及复杂的设计让很多人望而却步,尤其是大量的纯虚函数更是让读者迷失在代码的海洋,这个时候函数调 ...
最新文章
- jQuery样式操作
- php excel中解析显示html代码_骑士cms从任意文件包含到远程代码执行漏洞分析
- python3数据科学入门与实战_Python3学习之Python3数据科学入门与实战视频教程
- 阿里云自带的mysql_阿里云Centos使用自带mysql
- 10月25日学习内容整理:数据操作:增加更新删除,单表查询操作
- java extjs4 分页_extjs学习笔记(四)带分页的grid
- 利用OpenCV在picture控件中显示图片
- 斐讯盒子N1/T1_通用超精简刷机固件分享及教程
- 【UE·蓝图】UE4蓝图MediaPlayer注意事项
- 智能家居竞品分析:米家/HomeKit/美居/涂鸦智能的体验与思考
- 结对开发项目--石家庄地铁web版
- 刮刮乐html5效果,HTML5 简单实现刮刮乐效果
- 【JavaEE】网络基本概念与协议分层手术刀剖析
- vue族谱架构_基于 Vue 实现动态家谱图/组织结构图
- 即时通讯,1 天快速集成 支持单群聊、聊天室、系统通知等通信能力,安全可靠、 全球互通
- datagridview 单击某个单元格选中一行
- python 函数的参数 (必看)
- 跨越平台桌面应用开发框架electron使用的心路历程
- Ubuntu-13.04-X86_64安装GT630驱动
- 如何防止游戏检测出模拟器_【游戏教程】如何在模拟器运行完美世界
热门文章
- 中国菜刀下载及基础使用教程
- 逐梦C++之五:string类型
- opencv笔记(三)——调整运行窗口图片的大小
- linux颜色吸取工具,深度商店应用QElectroTech、Krita、深度取色器、深度截图
- [安装wireshark时,报“Error opening file for writing npf.sys”]
- YDOOK: STM32: 波特率的定义 波特率计算 波特率是什么?
- 什么是数字化?为什么需要数字化?
- 建设工程法规专科【6】
- Matlab MCR 7.14
- 可擦写光盘不能擦除和刻写_什么是可擦写光盘 什么时候要用到可擦洗光盘(擦除光盘)...