Merge "bootstat: 3.18 kernel does not report "SysRq : Trigger a crash""
am: 5e2b2681ef
Change-Id: I9c3ad26c9c1a385aa2fe5bb428af5ff5c2221e00
This commit is contained in:
commit
a2b4750771
1 changed files with 7 additions and 3 deletions
|
@ -30,6 +30,7 @@
|
|||
#include <map>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
#include <android-base/chrono_utils.h>
|
||||
|
@ -191,7 +192,9 @@ const std::map<std::string, int32_t> kBootReasonMap = {
|
|||
{"s3_wakeup", 51},
|
||||
{"kernel_panic,sysrq", 52},
|
||||
{"kernel_panic,NULL", 53},
|
||||
{"kernel_panic,null", 53},
|
||||
{"kernel_panic,BUG", 54},
|
||||
{"kernel_panic,bug", 54},
|
||||
{"bootloader", 55},
|
||||
{"cold", 56},
|
||||
{"hard", 57},
|
||||
|
@ -485,18 +488,19 @@ bool correctForBer(std::string& reason, const std::string& needle) {
|
|||
|
||||
bool addKernelPanicSubReason(const pstoreConsole& console, std::string& ret) {
|
||||
// Check for kernel panic types to refine information
|
||||
if (console.rfind("SysRq : Trigger a crash") != std::string::npos) {
|
||||
if ((console.rfind("SysRq : Trigger a crash") != std::string::npos) ||
|
||||
(console.rfind("PC is at sysrq_handle_crash+") != std::string::npos)) {
|
||||
// Can not happen, except on userdebug, during testing/debugging.
|
||||
ret = "kernel_panic,sysrq";
|
||||
return true;
|
||||
}
|
||||
if (console.rfind("Unable to handle kernel NULL pointer dereference at virtual address") !=
|
||||
std::string::npos) {
|
||||
ret = "kernel_panic,NULL";
|
||||
ret = "kernel_panic,null";
|
||||
return true;
|
||||
}
|
||||
if (console.rfind("Kernel BUG at ") != std::string::npos) {
|
||||
ret = "kernel_panic,BUG";
|
||||
ret = "kernel_panic,bug";
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
|
Loading…
Reference in a new issue