Exemple #1
0
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
Exemple #2
0
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