相关文章推荐
怕考试的木耳  ·  软件分享库合集链接汇总推荐_蓝奏云软件分享链 ...·  5 月前    · 
精明的日记本  ·  江西省发布第三批非法集资严重失信人名单 ...·  1 年前    · 
奔放的梨子  ·  Creating Word ...·  1 年前    · 
奔跑的苦咖啡  ·  地藏菩萨本愿经讲记(第十三卷)·  2 年前    · 
愤怒的菠萝  ·  异兽魔都(林田球创作的系列漫画)_搜狗百科·  2 年前    · 
Code  ›  Android NDK开发中快速定位crash(五)开发者社区
软件 android开发 ndk
https://cloud.tencent.com/developer/article/1768368
温文尔雅的小蝌蚪
2 年前
作者头像
PengJie
0 篇文章

Android NDK开发中快速定位crash(五)

原创
前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > 音视频修炼路 > 正文

Android NDK开发中快速定位crash(五)

原创
修改 于 2021-01-04 15:13:48
1.6K 0
举报

前言

我们在项目开发过程中可能会因为考虑不周或者对象,变量,方法使用不当导致程序产生bug,严重的时候会导致程序崩溃无法用。在平常开发中,当我们的Android程序crash的时候,我们可以通过Android studio logcat等工具快速定位等crach产生位置

如下图:

是因为textview空指针问题导致等。

但是在 NDK 项目开发中,在 C/C++ SDK 出现 crash 的的时候。如下图:通过搜索 logcat 抓到的日志,只能定位到图中 哪个pid 进程 ID ,tid 线程 ID 出现了问题,开发者无法直观的排查错误原因

使用ndk-stack输出调用堆栈

linux 系统中进程 crash 后通过 backtrace 输出堆栈信息,开发者是基于这些堆栈信息来定位代码问题。我们可以使用ndk-stack

打印对应的崩溃日志

使用方法

要使用 ndk-stack,您首先要有一个包含未剥离版应用共享库的目录。如果您使用 ndk-build,则可在 $PROJECT_PATH/obj/local/<abi> 中找到这些未剥离版共享库,其中 <abi> 是您设备的 ABI。

使用此工具的方式有两种。您可以将 logcat 文本作为直接输入馈送到程序。例如

adb logcat | $NDK/ndk-stack -sym $PROJECT_PATH/obj/local/armeabi-v7a

您也可以使用 -dump 选项将 logcat 指定为输入文件。例如:

adb logcat > /tmp/foo.txt
$NDK/ndk-stack -sym $PROJECT_PATH/obj/local/armeabi-v7a -dump foo.txt

该工具会在开始解析 logcat 输出时查找第一行星号。例如

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***

使用示范

1.现在cpp文件中添加native方法,用于产生一个crash

extern "C"
 
推荐文章
怕考试的木耳  ·  软件分享库合集链接汇总推荐_蓝奏云软件分享链接网站汇总手机 - 骑士助手
5 月前
精明的日记本  ·  江西省发布第三批非法集资严重失信人名单 _ 防范金融风险 _ 南昌县人民政府
1 年前
奔放的梨子  ·  Creating Word Application using Excel VBA: Run-time error '429': ActiveX component can't create obje
1 年前
奔跑的苦咖啡  ·  地藏菩萨本愿经讲记(第十三卷)
2 年前
愤怒的菠萝  ·  异兽魔都(林田球创作的系列漫画)_搜狗百科
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号