Это в основном используемое адресное пространство процесса (из структуры mm_struct
, которая содержит все области виртуальной памяти) и любая другая вспомогательная информация * a во время сбоя.
Например, допустим, вы пытаетесь разыменовать NULL-указатель и получаете сигнал SEGV, заставляющий вас выйти.В рамках этого процесса операционная система пытается записать вашу информацию в файл для последующего посмертного анализа.
Вы можете загрузить основной файл в отладчик вместе с исполняемым файлом (для символов и другой отладки).например,), и попытайтесь выяснить, что вызвало проблему.
* a : в версии ядра 2.6.38, fs/exec.c/do_coredump()
отвечает за дампы ядра, и вы можете видеть, что ему передан номер сигнала, код выхода и регистры.Он, в свою очередь, передает номер сигнала и регистрируется в дампер, специфичный для двоичного формата (ELF, a.out и т. Д.).
Дампер ELF - fs/binfmt_elf.c/elf_core_dump()
, и вы можете увидетьчто он выводит не основанную на памяти информацию, такую как сведения о потоке, в fs/binfmt_elf.c/fill_note_info()
, а затем возвращается для вывода пространства процесса.