The lldb_private::Process has:

    virtual Error
    GetMemoryRegionInfo (lldb::addr_t load_addr,
                         MemoryRegionInfo &range_info)
    {
        Error error;
        error.SetErrorString ("Process::GetMemoryRegionInfo() not supported");
        return error;
    }

If this isn't implemented on linux, it would be great to be able to fill it in. 
The theory being you can start with address zero and use each result in 
MemoryRegionInfo to figure out what to ask for next. The info returned in 
MemoryRegionInfo is:

MemoryRegionInfo {
    RangeType m_range;
    OptionalBool m_read;
    OptionalBool m_write;
    OptionalBool m_execute;
}

So querying at address zero would return a range of 0 - <first valid address> 
with read/write/execute set to false. Then you can query with "first valid 
address" to get the next range, etc. This of course would need to be exposed 
though the public API in SBProcess.

So there isn't anything exposed through the public API now, but it wouldn't be 
hard to do so with something like:

void
SBProcess::GetMemoryRegionInfo (
  lldb::addr_t load_addr, 
  lldb::addr_t &start_addr,
  lldb::addr_t &end_addr,
  bool &read, 
  bool &write, 
  bool executable);

Then we would probably want to figure out if we can cache the map results in 
ProcessLinux based on the mod time of the /proc/<debugged-id>/map file (if that 
is possible).

Greg

On Feb 1, 2014, at 12:45 AM, Jun Koi <[email protected]> wrote:

> hi,
> 
> does LLDB provide any facilities to retrieve all the memory maps of debugged 
> process from Python script?
> 
> on Linux, we can get this from /proc/<debugged-id>/map, but this is rather 
> mechanical, so if LLDB can get that for me, it would save me from doing that 
> myself.
> 
> 
> thanks,
> Jun
> _______________________________________________
> lldb-dev mailing list
> [email protected]
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev

_______________________________________________
lldb-dev mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev

Reply via email to