.. _module-pw_snapshot:

===========
pw_snapshot
===========

.. warning::

  This module is unstable and under active development. The snapshot proto
  format may see breaking changes as it stabilizes.

``pw_snapshot`` provides a storage format and associated tooling for capturing a
device's system state at a given point in time for analysis at a later time.
This is particularly useful for capturing information at crash time to provide
context to the cause of the crash. Outside of crash reporting, snapshots can be
used to debug anomalies that don't result in crashes by treating snapshotting as
a heavyweight alternative to tracing, logging-based dump commands, or other
on-demand system state capturing.


.. toctree::
  :maxdepth: 1

  setup
  module_usage
  proto_format
  design_discussion

------------------
Life of a Snapshot
------------------
A "snapshot" is just a `proto message
<https://cs.opensource.google/pigweed/pigweed/+/master:pw_snapshot/pw_snapshot_protos/snapshot.proto>`_
with many optional fields that describe a device's state at the time the
snapshot was captured. The serialized proto can then be stored and transfered
like a file so it can be analyzed at a later time.

#. **Snapshot capture triggered** - The device encounters a condition that
   indicates a snapshot should be captured. This could be through a crash
   handler, or through other developer-specified entry points.
#. **Device "pauses"** - In order to capture system state, the device must
   temporarily disable the thread scheduler and regular servicing of interrupts
   to prevent the system state from churning while it is captured.
#. **Snapshot captured** - The device collects information throughout the
   system through a project-provided snapshot collection logic flow. This data
   is stored as a serialized Snapshot proto message for later retrieval.
#. **Device resumes** - After a snapshot is stored, the device resumes normal
   execution. In a crash handler, the device will usually reboot instead of
   returning to normal execution.
#. **Snapshot retrieved from device** - During normal device operation, stored
   snapshots are retrieved from a device by a client that is interested in
   analyzing the snapshot, or forwarding it elsewhere to be analyzed.
#. **Snapshot analyzed** - Finally, analysis tooling is run on the captured
   snapshot proto to produce human readable dumps (akin to a crash report).
   Alternatively, the data can be ingested by a server to act as a cloud crash
   reporting endpoint. The structured form of a snapshot enables common
   cloud-based crash reporting needs like version filtering, crash signatures,
   de-duplication, and binary-matched symbolization.

While Pigweed provides libraries for each part of a snapshot's lifecycle, the
glue that puts all these pieces together is project specific. Please see the
section on `Setting up a Snapshot Pipeline <module-pw_snapshot-setup>`_ for more
information on how to bring up snapshot support for your project.
