在
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。据说有个调试标记可以避开这个问题,但是现在还不知道如何确定,不知道是否有人知道,告之我一下,非常感谢!