Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1985)

Unified Diff: appengine/findit/crash/chromecrash_parser.py

Issue 2593593003: [Predator] Add Clusterfuzz stacktrace parser. (Closed)
Patch Set: Rebase and fix nit. Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « appengine/findit/crash/callstack_detectors.py ('k') | appengine/findit/crash/clusterfuzz_parser.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: appengine/findit/crash/chromecrash_parser.py
diff --git a/appengine/findit/crash/chromecrash_parser.py b/appengine/findit/crash/chromecrash_parser.py
index 2d3db876f688e40e2c58a565f24ff7e088f811e8..408d1b7e642984e304c14d47f6bd85c30362e97a 100644
--- a/appengine/findit/crash/chromecrash_parser.py
+++ b/appengine/findit/crash/chromecrash_parser.py
@@ -5,6 +5,7 @@
import math
import re
+from crash import callstack_detectors
from crash import callstack_filters
from crash.stacktrace import CallStackBuffer
from crash.stacktrace import StacktraceBuffer
@@ -14,8 +15,6 @@ from crash.stacktrace_parser import StacktraceParser
from crash.type_enums import CallStackFormatType
from crash.type_enums import LanguageType
-FRACAS_CALLSTACK_START_PATTERN = re.compile(r'CRASHED \[(.*) @ 0x(.*)\]')
-JAVA_CALLSTACK_START_PATTERN = re.compile(r'\(JAVA\) CRASHED \[(.*) @ 0x(.*)\]')
DEFAULT_TOP_N_FRAMES = 7
@@ -29,17 +28,19 @@ class ChromeCrashParser(StacktraceParser):
DEFAULT_TOP_N_FRAMES)]
stacktrace_buffer = StacktraceBuffer(signature=signature, filters=filters)
+ stack_detector = callstack_detectors.ChromeCrashStackDetector()
# Initial background callstack which is not to be added into Stacktrace.
stack_buffer = CallStackBuffer()
for line in stacktrace_string.splitlines():
- is_new_callstack, priority, format_type, language_type = (
- self._IsStartOfNewCallStack(line))
+ is_new_callstack, priority, format_type, language_type, metadata = (
+ stack_detector.IsStartOfNewCallStack(line))
if is_new_callstack:
stacktrace_buffer.AddFilteredStack(stack_buffer)
stack_buffer = CallStackBuffer(priority=priority,
format_type=format_type,
- language_type=language_type)
+ language_type=language_type,
+ metadata=metadata)
else:
frame = StackFrame.Parse(stack_buffer.language_type,
stack_buffer.format_type, line, deps,
@@ -49,20 +50,4 @@ class ChromeCrashParser(StacktraceParser):
# Add the last stack to stacktrace.
stacktrace_buffer.AddFilteredStack(stack_buffer)
-
return stacktrace_buffer.ToStacktrace()
-
- def _IsStartOfNewCallStack(self, line):
- """Determine whether a line is a start of a callstack or not.
-
- Returns a tuple - (is_new_callstack, stack_priority, format_type,
- language type).
- """
- if FRACAS_CALLSTACK_START_PATTERN.match(line):
- #Fracas only provide magic signature stack (crash stack).
- return True, 0, CallStackFormatType.DEFAULT, LanguageType.CPP
-
- if JAVA_CALLSTACK_START_PATTERN.match(line):
- return True, 0, CallStackFormatType.DEFAULT, LanguageType.JAVA
-
- return False, None, None, None
« no previous file with comments | « appengine/findit/crash/callstack_detectors.py ('k') | appengine/findit/crash/clusterfuzz_parser.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698