Matt Joiner
Matt Joiner

Reputation: 118540

Searching a process' memory on Linux

How can I search the memory state of an process in Linux? Specifically I wish to identify certain regions of interest, and peek at them at regular intervals, possibly occasionally poking new values.

I suspect an answer may involve calls to ptrace(), and reading /proc/[pid]/mem, but need more to go on.

Upvotes: 4

Views: 3236

Answers (3)

Matt Joiner
Matt Joiner

Reputation: 118540

I've developed some code for the requested functionality.

The module memutil provides process memory region iteration, and python or C memory reading with assistance from the ptrace module, and readmem executable.

If there is any questions, or requests for standalone tools, just ask.

Upvotes: 2

JesperE
JesperE

Reputation: 64414

Perhaps using GDB would be an option? You should be able to do things like periodically reading memory using breakpoints.

Upvotes: 0

Gregory Pakosz
Gregory Pakosz

Reputation: 70204

I believe you can achieve what you want by parsing /proc/[pid]/maps -- I've used that to diagnose invalid pointers

Upvotes: 2

Related Questions