With CONFIG_DEBUG_COREDUMP_MEMORY_DUMP_LINKER_RAM, buffer_output() is called on the entire RAM memory area. This includes the stack for the coredump thread, which is where tmp_buf is stored. Eventually, it will copy (parts of) tmp_buf into tmp_buf itself, which invokes Undefined Behaviour in memcpy(): > The memory areas must not overlap. Use memmove(3) if the memory areas do > overlap. - memcpy(3) With picolibc, this is detected in __memcpy_chk() and causes a fault in __chk_fail(). Signed-off-by: Armin Brauns <armin.brauns@embedded-solutions.at> |
||
|---|---|---|
| .. | ||
| CMakeLists.txt | ||
| coredump_backend_flash_partition.c | ||
| coredump_backend_intel_adsp_mem_window.c | ||
| coredump_backend_logging.c | ||
| coredump_core.c | ||
| coredump_internal.h | ||
| coredump_memory_regions.c | ||
| Kconfig | ||