android core dump测试

发布时间:2020-06-06 19:44:09 作者:sunzeduo
来源:网络 阅读:1985

Android下app生成coredump方法


linux内核默认生成的coredump文件创建在根目录,android本身的权限管理,会导致创建失败:可以使用下面的方法来修改创建目录:
ulimit -c unlimited
mkdir /tmp
chmod 777 /tmp
echo "/tmp/core-%e.%p.%u" >/proc/sys/kernel/core_pattern

另外需要在你的c代码部分修改coredump的限制,如下:

#include<sys/time.h>

#include<sys/resource.h>

void change_coredump(){

struct rlimit coredump;

memset(&coredump, 0, sizeof(struct rlimit));
coredump.rlim_cur = RLIM_INFINITY;
coredump.rlim_max = RLIM_INFINITY;

setrlimit(RLIMIT_CORE, &coredump);

return;



目前理解中 change_coredump 这个函数调用的时机,并且 setrlimit 这个系统调用应该需要有root权限吧?

具体调用的使用方法见

http://sunzeduo.blog.51cto.com/2758509/1355018

这个说明。


几点疑惑:


1  自己有源码写出来的程序使用上面的 change_coredump 这个函数在初始化的时候调用应该没有问题,但是在出现core dump的时候,使用神马命令来调试调用这个core dump呢,以前的时候都是用 gdp 可执行应用程序 coredump文件,但是对于apk或者 dex 这个应该使用神马命令呢


2 没有源码的程序上的使用,这个思路是想通过修改smali源码,然后注入一段so,这个so中有这么段启动代码搞定这个事情。但是apk都是加壳了,本身反编译成smali源码的成本就越来越高了。这条路的前提条件是能够顺利反编译smali源码,并且加入自己的逻辑,同时还需要第一步能够实现。


这两个问题先记录一下,等有时间好好研究一下。



推荐阅读:
  1. android native HAL程序 java程序 linux kernel打印调用栈的方法
  2. Error: ShouldNotReachHere()(Android)

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

android roi %d

上一篇:Java数组去重面试题和答案

下一篇:oData的组成部分是什么?什么是restful?

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》