Инструменты для просмотра/редактирования памяти пользовательского пространства запущенных процессов?

Инструменты для просмотра/редактирования памяти пользовательского пространства запущенных процессов?

Существуют ли какие-либо инструменты для просмотра/редактирования памяти пользовательского пространства запущенных процессов в Linux?

Это было бы отличным инструментом обучения.

решение1

Память процесса доступна в виде файла, /proc/12345/memгде 12345 — это идентификатор процесса. Однако вы пока не сможете узнать что-либо напрямую из него. Первое, что нужно выяснить, — это какие части отображаются; эта информация доступна в /proc/12345/mapsи /proc/12345/smaps. Записи в /procдокументированы в документации ядра по адресуDocumentation/filesystems/proc.txt. lsofКоманда предоставит информацию о файлах, которые процесс отобразил в памяти, в более удобном для чтения виде.

Может быть, будет более поучительно посмотреть на запущенный процесс с помощью отладчика. Обычный отладчик под Linux — этоГдб. Gdb имеет простой интерфейс командной строки;ДДДиEmacsпредоставить более удобные интерфейсы. Для достижения наилучших результатов посмотрите на программу, в которой все еще есть отладочные символы и исходный код которой доступен (т. е. посмотрите на программу, которую вы только что скомпилировали -gи не удалили).

Вам также следует знать о straceнеобходимости наблюдения за системными вызовами, которые выполняет процесс, и ltraceнаблюдения за (некоторыми) библиотечными вызовами.

Связанный контент