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

#include

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(安卓)多媒体应用——MediaPlayer音频播放
  2. android 屏幕方向切换 锁定方向
  3. Android(安卓)Studio和Eclipse快捷键对比,及快捷键列表
  4. 【android】AsyncTask完全剖析(二)
  5. Android(安卓)Wifi获取组播
  6. 详解 Android(安卓)的 Activity 组件
  7. Android与Html5交互
  8. Android中retrofit网络请求框架使用
  9. android webview中js交互、第三方分享。

随机推荐

  1. Android edittext刚进入页面取消焦点
  2. Android(安卓)数据库文件 db 的备份和重
  3. Android lint 检查提示汇总
  4. Android Bitmap最全基本操作:与Drawable
  5. 八款android日历 [Calendar] 开源项目框
  6. Android单选和多选择按钮:
  7. Android 7.0 如何去掉灭屏动画
  8. android wifi hotspot
  9. ViewPager做出广告轮播特效
  10. 深入理解Notification机制