Android Log分析-系统重启

 重启原因分类 
 
 1.上层造成重启 
system_server被杀
watchdog重启
重要线程阻塞
 
 2.kernel造成重启 
空指针
非法地址
 
 3.kernel watchdog造成重启,原因不确定 
内存原因
nand驱动
 
 log查看步骤及关键字 
 
 1. 重启后的kernel.log或misc/cmdline.log 
 
 在log最前面,会有很长的一段,如: 
 
 initrd=0x85500000,0x204229 apv="td860-user 4.1.2 MocorDroid4.1.2 eng..20131107.215135 test-keys" mem=512M loglevel=1 console=ttyS1,115200n8 init=/init mtdparts=sprd-nand:256k(spl),512k(2ndbl),256k(params),512k(vmjaluna),10m(modem),3840k(fixnv),3840k(backupfixnv),5120k(dsp),3840k(runtimenv),10m(boot),10m(recovery),250m(system),180m(userdata),20m(cache),256k(misc),1m(boot_logo),1m(fastboot_logo),3840k(productinfo),512k(kpanic) androidboot.mode=panic lcd_id=ID9816 lcd_base=8ff27000 CHR_STATE=0 ram=512M no_console_suspend boot_ram_log=0x8fe00000,0x80000 tdfixnv=0x89060000,0x40000 tdruntimenv=0x890a0000,0x60000 wfixnv=0x90440000,0x40000 wruntimenv=0x90480000,0x60000 productinfo=0x80490000,0x4000 androidboot.serialno=12345678912345 adc_cal=216338536,185339408 fgu_cal=186388584,159845904,7534 fgu_init=2805,7742  
 
 搜索 
 androidboot.mode 
 ,看开机的模式,如果没有则默认为normal mode,正常开机;上例中为panic,为kernel中出错导致的重启。这个值是从 
 ANA_REG_GLB_POR_RST_MONITOR 
 位中获取到的值,每次获取完之后会置为0: 
 
 rst_mode = ANA_REG_GET(ANA_REG_GLB_POR_RST_MONITOR);rst_mode &= 0x7FFF;ANA_REG_SET(ANA_REG_GLB_POR_RST_MONITOR, 0); //clear flag  
 
 这个值是重启前填入的,如 
 HWRST_STATUS_PANIC 
 、 
 HWRST_STATUS_ALARM 
 等。 
 
 2. 重启后的last_kmsg log 
 
 此文件记录了重启前的kernel log,搜索 
 panic 
 确定问题发生在上层还是底层,如果有panic相关信息一般都是kernel造成的问题,如果有Restarting system则是上层造成的。 
 
 案例一:上层空指针引起的重启 
 
 0[ 83.522143] Restarting system with command 'special-systemserver-died'.0[ 83.900657] SPRD_WDT watchdog_feeder, margin=20, feed_period=3, sys_cnt = 862250[ 84.026350] sprd_set_reboot_mode:cmd=special-systemserver-died  
 
 此时是由于上层systemserver出了问题导致重启,查看重启方式是androidboot.mode=special,是system server挂掉引起的重启,看上去special方式启动都是上层引起的。 
 
 案例二: 
 
 【其他】手机处于待机状态长按Power键弹出POP选框不做任何操作还继续长按Power,手机会自动重启。 
 
 【预置条件】无 
 
 【操作步骤】手机处于待机状态长按Power键--弹出POP选框不做任何操作--还继续长按Power 
 
 【实际结果】手机会自动重启 
 
 【预期结果】应正常 
 
 【复现概率】Must 
 
 【备注说明】对比其他手机无此现象。 
 
 分析:last_kmsg中搜索到 
 sprd_set_reboot_mode:cmd=panic 
 ,说明是kernel导致的重启,附件的log中还有 
 !!!! trigger_watch_powerkey !!!! do emergency_restart 
 ,说明很可能是主动调用重启,在代码中搜索发现 
 
 static void trigger_watch_powerkey(void *private){ unsigned long flags; local_irq_save(flags);#ifdef CONFIG_MAGIC_SYSRQ handle_sysrq('m'); handle_sysrq('w');#endif pr_warn("!!!! trigger_watch_powerkey !!!! do emergency_restart\n"); emergency_restart(); pr_err("%s should neve

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值