Reputation: 19452
I am debugging a kernel memory corruption issue. From the resources i have i am able to find that an address(physical) 03a08000(keeps varying everytime), virtual - c3a08000 is being overwritten.
Now i want to know the process that has allocated this memory. How can i do this?
In short my question is, How can i find the name(process ID or any information) of a process that has allocated a given physical address?
Please let me know in case i am not clear on my question.
Edit : Forgot to mention that i have the complete memory dump(Complete 2 gb ram) with me
Upvotes: 2
Views: 470
Reputation: 19452
There is a command called showmap
inside crash tool. This will tell the exact pid and all the memory that is used by that process aswell.
This is the exact information i was looking for.
Kmem
shows still better statistics about the details of the related process.
crash > kmem <address>
Upvotes: 0
Reputation: 610
By the PageMap tools we can map the all the processes in the memory.The PageMap tools consists of two separate command-line utilities:
page-collect.c — Collects the memory “snapshot”; runs on the target platform.
page-analyze.cpp — Analyzes the memory “snapshot” and generates reports; runs on any platform.
EDIT------
To Debug the crash dump it can be done with gdb and other tools. To analyse as quick overview crash dump and other. Complete tutorial on crash dump.
RE-EDIT................................... I am not too sure about your question but when we are analysing crash dump; it starts as
linux:/var/crash/20111222 # crash System.map-2.6.32.49-0.3-default \
vmlinux-2.6.32.49-0.3-default.gz vmcore
Then we can list all process by ps
which also shows the PID
& Physical Address
both.
Upvotes: 2