Можно ли создать дамп ядра, не убивая процесс? Если да, то какая команда/сигнал для этого?
Спасибо, Джим
Можно ли создать дамп ядра, не убивая процесс? Если да, то какая команда/сигнал для этого?
Спасибо, Джим
См. команду «gcore», часть GDB.
Мне больше всего удалось подключить gdb в пакетном режиме к работающей программе, получить обратную трассировку и затем отсоединить.
gdb --batch --quiet -ex "set pagination off" -ex "thread apply all bt"
-ex "detach" -ex "quit" pid pid_of_process
Здесь описан способ создания дампа памяти напрямую из программы без gdb
: https://unix.stackexchange.com/questions/11185/dump-process-core-without-killing-the-process
Это имеет смысл только в том случае, если вы развиваетесь. Принцип состоит в том, чтобы разветвить программу и поднять SIGABRT
из дочернего элемента.