If CONFIG_STREAM_FLASH_ERASE is set, a page erase is done before
writing the coredump header to the flash. If the flash page erase size
is larger than the flash write size this results in erasing part of
the coredump data.
Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
The stream api initialization for the coredump flash backend used an
incorrect size.
This commit subtracts the header size.
Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
Current impementation assumes that CONFIG_LOG_IMMEDIATE=y
guarantees complete transfer, and it is not true.
In my opinion core dump should always be printed in panic mode.
Signed-off-by: Robert Gałat <robert.galat@nordicsemi.no>
If CONFIG_LOG_IMMEDIATE=n, go to panic mode with LOG_PANIC() so full
coredump is logged.
Add missing log_strdup() call.
Signed-off-by: Pete Skeggs <peter.skeggs@nordicsemi.no>
This removes the z_ prefix those (functions, enums, etc.) that
are being used outside the coredump subsys. This aligns better
with the naming convention.
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
This adds some shell commands to the logging backend. Since
this is a simple backend, only get/clear errors are
implemented.
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
This adds two new APIs to the coredump subsystem to perform
query and command. These can be used to query coredump subsys
for information, and to perform commands such as finding
out if there is a stored coredump.
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
The coredump frontend (mostly) consists of wrappers of backend
functions so there is really no need to track errors at
the frontend level. Let the backends deal with their own errors
and this simplifies the code a bit.
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
Originally there was a null backend but it was removed before
code was merged. However, some leftover code still refers to
this null backend. So remove the leftovers.
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
This adds a very primitive coredump mechanism under subsys/debug
where during fatal error, register and memory content can be
dumped to coredump backend. One such backend utilizing log
module for output is included. Once the coredump log is converted
to a binary file, it can be used with the ELF output file as
inputs to an overly simplified implementation of a GDB server.
This GDB server can be attached via the target remote command of
GDB and will be serving register and memory content. This allows
using GDB to examine stack and memory where the fatal error
occurred.
Signed-off-by: Daniel Leung <daniel.leung@intel.com>