#!/usr/bin/perl # read the radix tree out of a process and write it to stdout my $proc = shift; my @vmmap_out = `vmmap -vw -interleaved -noCoalesce $proc`; my $pid; for (@vmmap_out) { if (/^Process:.*\[(\d+)\]\s*$/) { $pid = $1; } if (/^Performance tool data \s*([0-9a-fA-F]+)-([0-9a-fA-F]+)/) { my $addr = $1; my $end = $2; if (`memread $pid 0x$addr 7` eq "radixv2") { exec sprintf("memread $pid 0x$addr 0x%x", hex($end) - hex($addr)); } } } printf STDERR "not found\n"; exit 1;