<font size=2 face="sans-serif">I'm working on a plugin for lldb and need
to scan the memory of a crashed process. Using the API to read chunks of
memory and scan (via SBProcess::Read*) for what I'm looking for is easy
but I haven't been able to find a way to find which address ranges are
accessible. The SBProcess::Read* calls will return an error on an invalid
address but it's not an efficient way to scan a 64 bit address space.</font>
<br>
<br><font size=2 face="sans-serif">This seems like it blocks simple tasks
like scanning memory for blocks allocated with a header and footer to track
down memory leaks, which is crude but traditional, and ought to be pretty
quick to script via the Python API.</font>
<br>
<br><font size=2 face="sans-serif">At the moment I've resorted to running
a python script prior to launching my plugin that takes the output of "readelf
--segments", /proc/<pid>/maps or "otool -l" but this
isn't ideal. On the assumption that I'm not missing something huge I've
looked at whether it is possible to extend LLDB to provide this functionality
and it seems possible, there are checks protecting calls to read memory
that use the data that would need to be exposed. I'm working on a prototype
implementation which I'd like to deliver back at some stage but before
I go too far does this sound like a good idea?</font>
<br>
<table width=650 style="border-collapse:collapse;">
<tr height=8>
<td width=465 style="border-style:none none none none;border-color:#000000;border-width:0px 0px 0px 0px;padding:0px 0px;"><font size=3 color=#8f8f8f face="Arial"><b>Howard
Hellyer</b></font><font size=1 face="Arial"><br>
IBM Runtime Technologies, IBM Systems</font>
<td width=184 style="border-style:none none none none;border-color:#000000;border-width:0px 0px 0px 0px;padding:0px 0px;">
<div align=right></div></table>
<br>
<br>