def get_crash_stacktrace_output( application_command_line, symbolized_stacktrace, unsymbolized_stacktrace=None, build_type=None, ): """Return output string with symbolized and unsymbolized stacktraces combined.""" def _guess_build_type(application_command_line): if "stable" in application_command_line: return "stable" elif "beta" in application_command_line: return "beta" elif sub_string_exists_in(["debug", "dbg"], application_command_line): return "debug" return "release" separator = "-" * 40 if not build_type: build_type = _guess_build_type(application_command_line) crash_stacktraces_output = environment.get_environment_settings_as_string() if application_command_line: crash_stacktraces_output += "[Command line] %s\n\n" % application_command_line crash_stacktraces_output += "+%s%s Build Stacktrace%s+\n%s" % ( separator, build_type.capitalize(), separator, symbolized_stacktrace, ) # No unsymbolized stack available. Bail out. if not unsymbolized_stacktrace: return crash_stacktraces_output unsymbolized_stacktrace_diff = get_unique_lines_in_unsymbolized_stack( symbolized_stacktrace, unsymbolized_stacktrace) if unsymbolized_stacktrace_diff: crash_stacktraces_output += ( "\n\n+%s%s Build Unsymbolized Stacktrace (diff)%s+\n\n%s" % ( separator, build_type.capitalize(), separator, unsymbolized_stacktrace_diff, )) return crash_stacktraces_output
def get_crash_stacktrace_output(application_command_line, symbolized_stacktrace, unsymbolized_stacktrace=None, build_type=None): """Return output string with symbolized and unsymbolized stacktraces combined.""" def _guess_build_type(application_command_line): if 'stable' in application_command_line: return 'stable' elif 'beta' in application_command_line: return 'beta' elif sub_string_exists_in(['debug', 'dbg'], application_command_line): return 'debug' return 'release' separator = '-' * 40 if not build_type: build_type = _guess_build_type(application_command_line) crash_stacktraces_output = environment.get_environment_settings_as_string() if application_command_line: crash_stacktraces_output += ( '[Command line] %s\n\n' % application_command_line) crash_stacktraces_output += ('+%s%s Build Stacktrace%s+\n%s' % ( separator, build_type.capitalize(), separator, symbolized_stacktrace)) # No unsymbolized stack available. Bail out. if not unsymbolized_stacktrace: return crash_stacktraces_output unsymbolized_stacktrace_diff = get_unique_lines_in_unsymbolized_stack( symbolized_stacktrace, unsymbolized_stacktrace) if unsymbolized_stacktrace_diff: crash_stacktraces_output += ( '\n\n+%s%s Build Unsymbolized Stacktrace (diff)%s+\n\n%s' % (separator, build_type.capitalize(), separator, unsymbolized_stacktrace_diff)) return crash_stacktraces_output