Core dump

Een core dump is een momentopname van het geheugen van een proces op het moment dat het crasht. Het bevat de toestand van alle variabelen, de call stack en registerinhoud — nuttig om te achterhalen waarom een programma gecrasht is.

Hoe het ontstaat

Wanneer een proces een fataal signaal ontvangt (zoals SIGSEGV — segmentation fault), schrijft de kernel een core-bestand naar schijf. De naam is standaard core of core.<PID>.

Core dumps inschakelen

ulimit -c unlimited          # core dumps toestaan in huidige shell
ulimit -c 0                  # core dumps uitschakelen

Permanent instellen in /etc/security/limits.conf:

*  soft  core  unlimited

Locatie

cat /proc/sys/kernel/core_pattern    # waar worden core dumps opgeslagen?
# Typisch: core of /var/lib/systemd/coredump/

Analyseren

gdb /usr/bin/mijnprogramma core      # debugger starten met core dump
coredumpctl list                     # systemd core dumps bekijken
coredumpctl debug                    # direct in gdb openen

Zie ook

linuxprocessenontwikkeling