Как проанализировать использование памяти из дампа памяти? - PullRequest
12 голосов
/ 14 января 2011

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

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

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

Ответы [ 2 ]

0 голосов
/ 16 января 2019

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

Решение:

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

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

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

$ gdb (your executable) -c (core)
$ vmmap 
0 голосов
/ 01 октября 2017

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

...