在
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。據說有個調試標記可以避開這個問題,但是現在還不知道如何確定,不知道是否有人知道,告之我一下,非常感謝!