1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-04 21:47:37 +00:00

Kernel: Generate a coredump file when a process crashes

When a process crashes, we generate a coredump file and write it in
/tmp/coredumps/.

The coredump file is an ELF file of type ET_CORE.
It contains a segment for every userspace memory region of the process,
and an additional PT_NOTE segment that contains the registers state for
each thread, and a additional data about memory regions
(e.g their name).
This commit is contained in:
Itamar 2020-11-06 10:09:51 +02:00 committed by Andreas Kling
parent efe4da57df
commit b4842d33bb
11 changed files with 427 additions and 1 deletions

View file

@ -734,6 +734,7 @@ DispatchSignalResult Thread::dispatch_signal(u8 signal)
set_state(Stopped, signal);
return DispatchSignalResult::Yield;
case DefaultSignalAction::DumpCore:
process.set_dump_core(true);
process.for_each_thread([](auto& thread) {
thread.set_dump_backtrace_on_finalization();
return IterationDecision::Continue;