Как анализировать использование памяти из дампа ядра?

У меня есть основной дамп под Linux. Этот процесс продолжался, и мне нужно найти, по крайней мере, какую библиотеку это происходит.

Какой инструмент вы предлагаете получить широкий обзор того, где происходит память? Я знаю, что проблема полностью/неразрешима. Любой инструмент, который мог бы хотя бы дать некоторые подсказки, помог бы.

[это процесс python, подозрение в том, что выделение памяти вызвано одним из настраиваемых модулей, написанных на C]

Ответ 1

Попробуйте запустить linux perf tool в процессе python с включенным callgraph. если его многопоточный процесс дает все связанные LWP в качестве аргументов.

Ответ 2

Проблема: нужно найти, какая библиотека работает со сбоями памяти.

Решение:

1) Используйте valgrind, чтобы узнать Неверная запись или Недостаточно свободной памяти

$ valgrind --tool=memcheck --error-limit=no --track-origins=yes (python your script) 

2) Используйте команду gdb mmap, чтобы узнать, в каком адресном пространстве находится библиотека

$ gdb (your executable) -c (core)
$ vmmap