Я использую базу данных Redis и хотел бы изучить содержимое оперативной памяти, используемой приложением.
Я чувствую, что объяснение того, почему я хочу это сделать, будет иметь больше смысла, чем вопрос, который я задам.
Redis - это простое хранилище значений ключей, в котором хранятся двоичные данные. Я думаю, что это было бы хорошим местом для изучения таких вещей, как кодирование, и мне было бы интересно заняться такими вещами, как просмотр оперативной памяти в поисках двоичных наборов данных, например, поиск простых шаблонов; возможно, исследовать идею написания детского языка запросов, который ищется в оперативной памяти.
Я получил эту идею после прочтения главы в SICP о языках запросов.
Есть мысли о том, с чего начать? Вначале я хочу попросить «дать мне адресное пространство, в котором работает это приложение, пожалуйста».
pmap
форматирует эту информацию, чтобы она была более читабельной.Используйте отладчик, вот для чего они.
Если вы хотите накатить свое, все проходит
ptrace
.Вы можете увидеть карту памяти процесса (оглавление для памяти)
/proc/$pid/maps
и прочитать все содержимое памяти/proc/$pid/mem
. Вы не можете просто открыть этот последний файл как обычно, см. Как я могу прочитать из / proc / $ pid / mem под Linux?источник