在
linux下生成core dump文件方法及設(shè)置一文中,我們可以在linux平臺(tái)下控制core dump文件的生成。理論上來(lái)說(shuō),按照此方法,在Android平臺(tái)上作相應(yīng)設(shè)置,應(yīng)該也可以開(kāi)啟core dump功能,當(dāng)程序宕機(jī)以后,我們可以根據(jù)core dump文件來(lái)調(diào)試程序。事實(shí)上,這種方法行不通,即:通過(guò)ulimit -c 命令不能使Android生成core dump。
在Android平臺(tái)上,能夠正確生成core dump的方法是修改init.rc文件。在init.rc中setrlimit 13 40 40下增加一條記錄: setrlimit 4 -1 -1。至于如何修改init.rc,見(jiàn)
這篇文章。
修改了init.rc之后,就可以生成core dump了。
但是,上面這種方法只適合純用c/c++開(kāi)發(fā)的程序,對(duì)于由app_process進(jìn)程所啟動(dòng)的程序(dalvik執(zhí)行的應(yīng)用程序),并不能正確生成core dump,因?yàn)樗鼈冎刂昧藃limits。據(jù)說(shuō)有個(gè)調(diào)試標(biāo)記可以避開(kāi)這個(gè)問(wèn)題,但是現(xiàn)在還不知道如何確定,不知道是否有人知道,告之我一下,非常感謝!