diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2018-11-22 07:10:16 +0100 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2018-11-22 07:10:16 +0100 |
| commit | 76b59936dab9134fbf0b81b1de7960b88ab970ef (patch) | |
| tree | 54ea6f9f1cf64f6469b7b8cf595b9d6cda707338 /pkg/report/linux.go | |
| parent | 9db828b50673b642da7da89eede4348da3aa4987 (diff) | |
pkg/report: add "PANIC: double fault" report format
Amusing that's another kernel failure mode that we are discovering after 3 years.
One can't even reliably understand when kernel has crashed.
I wonder if syzkaller never hit these, or just never recognized and reported them. We will see.
Don't even want to think about arm kernel output parsing.
Diffstat (limited to 'pkg/report/linux.go')
| -rw-r--r-- | pkg/report/linux.go | 35 |
1 files changed, 29 insertions, 6 deletions
diff --git a/pkg/report/linux.go b/pkg/report/linux.go index 3e6ebebcf..cec2b4e69 100644 --- a/pkg/report/linux.go +++ b/pkg/report/linux.go @@ -1207,6 +1207,21 @@ var linuxOopses = []*oops{ []*regexp.Regexp{}, }, { + []byte("PANIC: double fault"), + []oopsFormat{ + { + title: compile("PANIC: double fault"), + fmt: "PANIC: double fault in %[1]v", + stack: &stackFmt{ + parts: []*regexp.Regexp{ + linuxRipFrame, + }, + }, + }, + }, + []*regexp.Regexp{}, + }, + { []byte("kernel BUG"), []oopsFormat{ { @@ -1256,9 +1271,13 @@ var linuxOopses = []*oops{ []byte("divide error:"), []oopsFormat{ { - title: compile("divide error: "), - report: compile("divide error: (?:.*\\n)+?.*RIP: [0-9]+:(?:{{PC}} +{{PC}} +)?{{FUNC}}"), - fmt: "divide error in %[1]v", + title: compile("divide error: "), + fmt: "divide error in %[1]v", + stack: &stackFmt{ + parts: []*regexp.Regexp{ + linuxRipFrame, + }, + }, }, }, []*regexp.Regexp{}, @@ -1267,9 +1286,13 @@ var linuxOopses = []*oops{ []byte("invalid opcode:"), []oopsFormat{ { - title: compile("invalid opcode: "), - report: compile("invalid opcode: (?:.*\\n)+?.*RIP: [0-9]+:{{PC}} +{{PC}} +{{FUNC}}"), - fmt: "invalid opcode in %[1]v", + title: compile("invalid opcode: "), + fmt: "invalid opcode in %[1]v", + stack: &stackFmt{ + parts: []*regexp.Regexp{ + linuxRipFrame, + }, + }, }, }, []*regexp.Regexp{}, |
