我在我的设备上使用Android Custom ROM,也使用自定义boot.img(自定义内核+ cmdline + ramdisk).我现在希望能够在内核崩溃后立即查看内核日志,但遗憾的是我无法使用串行控制台.
好消息:Android的Linux内核中似乎有一些源/模块正是为此目的编写的.例如,在我的内核的.config文件中激活了以下行:
CONFIG_ANDROID_RAM_CONSOLE=y
CONFIG_ANDROID_RAM_CONSOLE_ENABLE_VERBOSE=y
CONFIG_APANIC=y
CONFIG_APANIC_PLABEL="oem_log"
Run Code Online (Sandbox Code Playgroud)
我的问题是:在我强制内核恐慌以便测试它之后,即通过加载一个简单的恐慌内核模块insmod panic.ko,似乎没有日志被写入名为oem_log的MTD (存在于我的设备上).其次,RAM在重启后也不包含日志,因为它似乎被清除 - 或者也没有写入日志.
那么如何在恐慌之后获取内核日志呢?如果有一种方法可以测试正在运行的系统上的APANIC,那将会很有帮助.也许通过使用内核调试系统?截至目前,我对此很陌生.
在此先感谢您的帮助!
我正在测试一个具有长期运行服务的Android应用程序.我正在使用Eclipse,并将usb线连接在我旁边的手机上.由于这是一项长期持续的服务,我在运行时做了一些其他工作,并且每隔一段时间检查一次logcat日志,以确保一切按预期进行.
几分钟前我注意到手机重启了.我认为它之前已经完成了,因为它可以解释一些奇怪的应用程序行为.我很快切换到Eclipse,看看发生了什么,发现logcat日志(似乎)在重启过程中被清除了.所以没有记录我的应用程序是否崩溃(并取下电话?!)或是否有其他问题导致手机和我的应用程序崩溃.
无论如何我能找出发生了什么?这是一款开发手机,所以我不知道它是经常自行重启/崩溃,还是仅在我的应用运行时才重新启动/崩溃.这是摩托罗拉Droid运行固件版本2.1-update1.
谢谢你的帮助.