GDB полный дамп памяти процесса - PullRequest
2 голосов
/ 03 мая 2020

Я пытаюсь сбросить память процесса на удаленной машине. Целевая машина - это какой-то старый Linux, и я запускаю gdbserver 8.3 на скомпилированном им компьютере.
Я могу создать несколько удобных дампов с помощью команды gcore, однако эти В дампах отсутствуют все разделы r-x и r--, он содержит только доступные для записи разделы. Кто-нибудь может подсказать мне, как создать полный дамп памяти, включая все, желательно в том же формате дампа ядра?
Я уже пробовал оба

set use-coredump-filter on
set use-coredump-filter off

и

set dump-excluded-mappings on
set dump-excluded-mappings off

1 Ответ

2 голосов
/ 04 мая 2020

Вы должны установить фильтр основных файлов в /proc/PID/coredump_filter на http://man7.org/linux/man-pages/man5/core.5.html.

Например

echo 0xff > /proc/$(pidof foo)/coredump_filter
gcore $(pidof foo)
...