总结一下NDK crash排查步骤
总结一下NDK crash排查步骤:
- 先在PC上跑通算法
用Visual Studio写算法的testbed,确保算法能跑通
- 先在PC上跑通算法
- 抓log
adb logcat -c;
adb logcat > 1.txt 2>&1
然后开notepad++,打开1.txt
- 分析日志文件
查找关键字fatal以及backtrace;
使用addr2line等工具对backtrace结果进行进一步定位:参考这篇博客
- 分析日志文件
- android studio开启ndk代码的调试
应当基于cmake构建;
没有算法核心源码也可以,只要是AS工程中的C++代码就能调;
使用logcat等进行打印(lldb调试时鼠标移动到变量上很容易导致apk停止运行,why?);
调试时的按钮怎么用?参考这篇
- android studio开启ndk代码的调试
- 把源码放进AS,源码编译出库
如果源文件名字过长,容易导致CMake编译单个文件失败(实际上是ndk里的clang编译失败),要改短;
- 把源码放进AS,源码编译出库
- 其他方法
固定ndk代码中的输入,用fread从sdcard读取,保证和PC端的输入一致。
- 其他方法
- 检查并关闭
fprintf(stderr, "...");,实测发现写到stderr会造成crash然后app自动重启。
- 检查并关闭
总结一下NDK crash排查步骤的更多相关文章
- php不解析的排查步骤
php不解析的排查步骤:1. /usr/local/apache2/bin/apachectl -M 看一下有没有加载libphp5.so2. 查看配置文件中是否有 AddType applicati ...
- 在Windows平台下Qt的exe报错问题排查步骤
在Windows平台下Qt的exe报错问题排查步骤 工具介绍: 1. Dependency Worker Dependency Worker是一个免费的用具用来扫描任何的32bit 或者64bit 的 ...
- Kafka 0.8 宕机问题排查步骤
CPU 利用率高的排查方法 看看该机器的连接数是不是比其他机器多,监听的端口数:netstat -anlp | wc -l Kafka-0.8的停止和启动 启动: cd /usr/local/kafk ...
- Openblas编译Android NDK库的步骤
1.配置Android NDK编译工具.以下下载地址,直接放到浏览器中下载,不需要VPNlinux 32 bithttp://dl.google.com/android/ndk/android-ndk ...
- Lodop简短问答客户反馈篇 及排查步骤 及注册相关
A.http下打印图片正常,https下打印图片是××.(有的客户端可以,有的不可以)重置ie浏览器试试.客户反馈:(和ie浏览器的设置有关)intenet选项--高级里,我调整为和能打印出图片的电脑 ...
- django表格form无法保存评论排查步骤
初学django项目,在网上找了个blog教程,还是很不错的,这里感谢一下博主https://www.zmrenwu.com/post/2/ 这个项目适合django初学者,是一个完整的blog项目 ...
- Redis Desktop Manager无法连接虚拟机中启动的redis服务问题排查步骤
Redis Desktop Manager下载地址 https://redisdesktop.com/download 安装好以后连接linux服务器上的Redis服务器错误: 问题排查: 1.检查R ...
- Linux云主机安全入侵排查步骤
导语 经常有用户报障系统被植入恶意程序,如挖矿软件.ddos攻击病毒.syn映射攻击病毒等,可以按照以下流程为用户排查入侵病毒类型: 一.定位病毒进程 对于用户反馈云主机性能卡顿,CPU和内存占用较高 ...
- mysql innodb引擎 一次线上死锁分析排查步骤
我们的线上erp系统一天使用人员反映部分数据死活保存不上而且页面操作很慢.开始以为操作数据量大的原因, 后来查看了我们线上的glowroot系统,发现slowtrace中有超长时间的访问,点开查看详情 ...
随机推荐
- docker使用redis.conf配置文件方式启动redis无反应无日志
如题,场景重现:因为配置多了,不想通过参数来启动docker容器中的redis,特意上github找了对应版本的redis.conf,修改了相关配置,只让本机使用: 上传到/mydata/redis/ ...
- js 动态加载 jq
var script=document.createElement("script"); script.type="text/javascript"; scri ...
- 抓包 抓nodejs的包 抓浏览器的包 抓手机的包
应用场景: 确认接口是能用的,但自己使用时就是不行,参数有没有传正确?格式对不对?傻傻分不清. 抓包工具:这里演示 charles , 常用的还有 Fiddler, HttpWatch, WireSh ...
- Vue生命周期 以及应用场景
首先一张官方图 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...
- 【layui】【jquery】通过layero获取iframe的元素
$(layero).find('iframe').contents().find('#id'); $(layero).find('iframe').contents().find('#jqGridY' ...
- jQuery.js引入时要在其他js文件之前,否则js中无法识别jQuery的语法
- 解决netty客户端接收报文不完整的情况
逻辑就是在处理handler前加入一个处理符,然后 channelReadComplete这个事件进行处理.同时注意客服端的配置: public void connect(String addr, i ...
- 资源对象的池化, java极简实现,close资源时,自动回收
https://www.cnblogs.com/piepie/p/10498953.html 在java程序中对于资源,例如数据库连接,这类不能并行共享的资源对象,一般采用资源池的方式进行管理. 资源 ...
- Go调用Delphi编写的DLL
参数整数没有问题,但是如果是字符串,要注意几个细节. 记录如下: 1.Delphi定义函数的时候,字符串参数需要使用PChar类型 2.Go传递参数的时候要将字符串转成UTF16的指针,接收的时候采用 ...
- 【LEETCODE】68、动态规划,medium级别,题目:95、120、91
package y2019.Algorithm.dynamicprogramming.medium; /** * @ProjectName: cutter-point * @Package: y201 ...