Hugh, I got tired of rebooting just to get address walking traces :-) So I wrote a little simulator. Basically, it's free_pgtables() with the page table pointer stuff ripped out. You run it like this: ./simulator vma_file Where vma_file is a text file composed of lines of the form: START END in hex. The ordered list of VMA's is built from this text file. I enclose a sample file I took from that trace I built earlier today. If you want to get fancy, it's probably very easy to make it so that parse_file() can read in live /proc/${pid}/maps files too :) It is easy to stick in support for platforms other than SPARC64, the machinery is all there, just pop the definitions out from the platforms include/asm-*/*.h and relevant include/asm-generic/*.h header files. Enjoy. :-)