как найти другой сегмент памяти, начиная и его размер в Linux - PullRequest
0 голосов
/ 08 июля 2011

Я новичок в Linux.Я хочу знать начальный адрес и его размер различных сегментов (таких как стек, куча, данные и т. Д.) И его текущее использование.

Мне нравится знать, как найти как в процессе работы, так и в дампе ядра.

Заранее спасибо.

Ответы [ 4 ]

5 голосов
/ 08 июля 2011

начните с изучения файловой системы proc(5).man - ваш друг.

/proc/[number]/maps Файл, содержащий в настоящее время отображенные области памяти и их права доступа

в GDB, вы можете использовать

$ gdb -q
(gdb) help info proc
Show /proc process information about any running process.
Specify any process id, or use the program being debugged by default.
Specify any of the following keywords for detailed info:
  mappings -- list of mapped memory regions.
  stat     -- list a bunch of random process info.
  status   -- list a different bunch of random process info.
  all      -- list all available /proc info.

Посмотрите на info proc mappings, за исключением того, что он не работает, когда нет / proc (например, во время посмертной отладки).

1 голос
/ 11 сентября 2013

Существует команда pmap . Он отображает информацию, доступную в /proc/PID/maps по-разному. Кроме того, он добавляет заголовок и итоговые строки. Это может быть более читабельным, чем псевдо-файл /proc/PID/maps.

К сожалению, у него нет возможности анализировать дампы ядра.

0 голосов
/ 19 июля 2011

Используйте `разделы информации об обслуживании 'в GDB, чтобы распечатать все сегменты, которые отображаются в адресное пространство процесса.

0 голосов
/ 08 июля 2011

objdump в Linux дает информацию о двоичном файле.Проверьте человека objdump.Это дает - разделы, разборка, символы отладки.

objdump -h <binary> 

objdump --section=name 

Лучший способ, если возможно (если вы можете собрать исполняемый файл самостоятельно из исходного кода), генерировать файл карты при компиляции и компоновке исходного кода, давая соответствующиеопция компилятора / компоновщика.Файл карты обязательно будет содержать всю информацию о размерах, начальных адресах разных разделов.

...