def filter_stacktrace(crash_stacktrace, crash_type, stack_clean_regex_lines, revisions_dict): """Clean up and format a stack trace for display.""" if not crash_stacktrace: return '' # Get stacktrace clean regex for filtering strings and even full lines. stack_clean_regex_list = filter(bool, stack_clean_regex_lines.splitlines()) stack_clean_regex = ( re.compile('(%s)' % '|'.join(stack_clean_regex_list)) if stack_clean_regex_list else None) filtered_crash_lines = [] for line in crash_stacktrace.splitlines(): # Null out matched string from stacktrace clean regex. if stack_clean_regex: line = stack_clean_regex.sub('', line) if not line: continue # Html escape line content to prevent XSS. line = cgi.escape(line, quote=True) line = source_mapper.linkify_stack_frame(line, revisions_dict) filtered_crash_lines.append(line) filtered_crash_stacktrace = '\n'.join(filtered_crash_lines) if crash_type == leak_blacklist.DIRECT_LEAK_LABEL: return leak_blacklist.highlight_first_direct_leak(filtered_crash_stacktrace) return highlight_common_stack_frames(filtered_crash_stacktrace)
def filter_stacktrace(crash_stacktrace, crash_type, revisions_dict): """Clean up and format a stack trace for display.""" if not crash_stacktrace: return '' filtered_crash_lines = [] for line in crash_stacktrace.splitlines(): # Html escape line content to prevent XSS. line = cgi.escape(line, quote=True) line = source_mapper.linkify_stack_frame(line, revisions_dict) filtered_crash_lines.append(line) filtered_crash_stacktrace = '\n'.join(filtered_crash_lines) if crash_type == leak_blacklist.DIRECT_LEAK_LABEL: return leak_blacklist.highlight_first_direct_leak(filtered_crash_stacktrace) return highlight_common_stack_frames(filtered_crash_stacktrace)
def filter_stacktrace(crash_stacktrace, crash_type, revisions_dict, platform, job_type): """Clean up and format a stack trace for display.""" if not crash_stacktrace: return '' filtered_crash_lines = [] for line in crash_stacktrace.splitlines(): # Html escape line content to prevent XSS. line = html.escape(line, quote=True) line = source_mapper.linkify_stack_frame(line, revisions_dict) if 'android' in platform or environment.is_lkl_job(job_type): line = _linkify_android_kernel_stack_frame_if_needed(line) filtered_crash_lines.append(line) filtered_crash_stacktrace = '\n'.join(filtered_crash_lines) if crash_type == leak_blacklist.DIRECT_LEAK_LABEL: return leak_blacklist.highlight_first_direct_leak( filtered_crash_stacktrace) return highlight_common_stack_frames(filtered_crash_stacktrace)