Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Overview

Crash dumping system facilitates service providers or developers to collect crashes upload component helps in uploading the crashes (coredump or minidump files) that happened in the set-top boxes and do the debugging in offline. Crash dumping system is a debug supporting system, which consists of Crash dumping server(s) with user interfaces.  Crash dumping server collect crash to the crash portal server(which can be configured). Crash portal collects crash dumps and logs which happened in the connected STBs, process these logs and store for future reference.Crash log is a log file automatically created on Set top boxes when a crash occurs. This information is useful for offline debugging. and provide a meaningful backtrace.

Crash Portal server processes 2 types of crash dump files

Minidumps

  • Minidump files are a lightweight crash dump format developed by Microsoft.
  • Google Breakpad project supplies tools to work with Minidump files.
  • The primary tool used by Crash Portal is minidump_stackwalk which generates a stack trace from a minidump file.
  • See http://www.chromium.org/developers/decoding-crash-dumps

Coredumps

  • Coredump files are standard Linux coredumps.
  • Crash Portal extracts information from the coredump files but does not generate a stack trace.
    • But a tool such as gdb will do this.


CrashUpload

Minidump or core files are tarred and uploaded by crashUpload component:

  https://code.rdkcentral.com/r/rdk/components/generic/crashupload

dump-backup.service invokes /lib/rdk/core_shell.sh which is responsible for calling uploadDumps.sh script to upload the crash dump to crash portal server.

echo "|$RDK_PATH/core_shell.sh %e %s %t" >/proc/sys/kernel/core_pattern

uploadDumps.sh script collects the following and compresses it to create a .tgz format

  • minidump file (*.dmp)
  • version.txt
  • ocapri_log.txt
  • messages.txt
  • core_log.txt

Minidump

  • A list of the executable and shared libraries that were loaded in the process at the time the dump was created. This list includes both file names and identifiers for the particular versions of those files that were loaded.
  • A list of threads present in the process. For each thread, the minidump includes the state of the processor registers, and the contents of the threads' stack memory.
  • Other information about the system on which the dump was collected: processor and operating system versions, the reason for the dump, and so on. 

...