孔雀开发小屋

专注并致力于手机客户端开发
<2011年7月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

统计

  • 随笔 - 103
  • 文章 - 0
  • 评论 - 251
  • 引用 - 0

常用链接

留言簿(38)

随笔分类

随笔档案

关注的博客

朋友的博客

搜索

  •  

最新评论

阅读排行榜

评论排行榜

Android下生成core dump的方法
linux下生成core dump文件方法及设置一文中,我们可以在linux平台下控制core dump文件的生成。理论上来说,按照此方法,在Android平台上作相应设置,应该也可以开启core dump功能,当程序宕机以后,我们可以根据core dump文件来调试程序。事实上,这种方法行不通,即:通过ulimit -c 命令不能使Android生成core dump。

在Android平台上,能够正确生成core dump的方法是修改init.rc文件。在init.rc中setrlimit 13 40 40下增加一条记录: setrlimit 4 -1 -1。至于如何修改init.rc,见这篇文章

修改了init.rc之后,就可以生成core dump了。

但是,上面这种方法只适合纯用c/c++开发的程序,对于由app_process进程所启动的程序(dalvik执行的应用程序),并不能正确生成core dump,因为它们重置了rlimits。据说有个调试标记可以避开这个问题,但是现在还不知道如何确定,不知道是否有人知道,告之我一下,非常感谢!


posted on 2011-03-07 20:12 孔雀 阅读(14867) 评论(4)  编辑 收藏 引用 所属分类: Android

评论

# re: Android下生成core dump的方法 2011-03-11 16:36 李皮静

setrlimit 13 40 40
setrlimit 4 -1 -1

是什么意思,能解释一下吗?
谢谢!
  回复  更多评论    

# re: Android下生成core dump的方法 2011-03-12 10:45 孔雀

@李皮静
setrlimit 是一个C接口,用来设定资源限制的。

init.rc中原本的13 40 40具体意思我没有搞明白。

但是 4 -1 -1 代表的是设置core dump的大小,-1代表没有限制。
  回复  更多评论    

# re: Android下生成core dump的方法 2012-08-27 19:01 3lxl3

对于由app_process进程所启动的程序
楼主有办法了吗,求共享!
  回复  更多评论    

# re: Android下生成core dump的方法 2014-07-21 17:24 f0rest

./gdb --pid 3022
......
(gdb) gcore
gcore
warning: Memory read failed for corefile section, 8192 bytes at 0x73233000.
warning: Memory read failed for corefile section, 1048576 bytes at 0x74338000.
warning: Memory read failed for corefile section, 1048576 bytes at 0x747f0000.
Saved corefile core.3022

当core file超过300MB时就会出现这个问题,请问如你写的修改init.rc是用来fix这个问题的吗?
  回复  更多评论    

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理