Re: [lldb-dev] Listing memory regions in lldb

2016-05-20 Thread Greg Clayton via lldb-dev
> On May 20, 2016, at 3:27 AM, Howard Hellyer wrote: > > >> - Using GetMemoryRegionInfo to iterate might be quite expensive if there > >> are many small memory regions. > > > > Remember that the other use for GetMemoryRegionInfo() might be a user just > > asking about an address they have in

Re: [lldb-dev] Listing memory regions in lldb

2016-05-20 Thread Howard Hellyer via lldb-dev
>> - Using GetMemoryRegionInfo to iterate might be quite expensive if there are many small memory regions. > > Remember that the other use for GetMemoryRegionInfo() might be a user just asking about an address they have in a register or variable that is a pointer. So if we do add a more complex

Re: [lldb-dev] Listing memory regions in lldb

2016-05-16 Thread Greg Clayton via lldb-dev
I am fine with adding new key/value pairs to each memory region so feel free to extend as needed as long as any missing keys ("memory_type == stack" for example) default to something sensible. Then each process plug-in can do what it can do and the process plug-ins will fill in as much info as p

Re: [lldb-dev] Listing memory regions in lldb

2016-05-16 Thread Jim Ingham via lldb-dev
> On May 13, 2016, at 9:13 AM, Zachary Turner wrote: > > On Intel processors, the best way to do this is probably going to be to walk > the page directory (see Intel processor manuals). Assuming someone > implements this command in lldb, I hope it can be done in such a way as to > allow diff

Re: [lldb-dev] Listing memory regions in lldb

2016-05-16 Thread Howard Hellyer via lldb-dev
#x27;t really make a difference. Howard Hellyer IBM Runtime Technologies, IBM Systems Adrian McCarthy wrote on 13/05/2016 16:57:07: > From: Adrian McCarthy > To: Howard Hellyer/UK/IBM@IBMGB > Cc: Greg Clayton , LLDB > Date: 13/05/2016 16:57 > Subject: Re: [lldb-

Re: [lldb-dev] Listing memory regions in lldb

2016-05-16 Thread Howard Hellyer via lldb-dev
Apologies, I don't mean either of those.   This was working on a debug tool for the IBM JVM. When we added the MiniDumpWithFullMemoryInfo to our calls to MiniDumpWriteDump we found it inserted blank ranges to keep the regions in the MINIDUMP_MEMORY_INFO_LIST structure contiguous. I checked a dump j

Re: [lldb-dev] Listing memory regions in lldb

2016-05-13 Thread Zachary Turner via lldb-dev
On Intel processors, the best way to do this is probably going to be to walk the page directory (see Intel processor manuals). Assuming someone implements this command in lldb, I hope it can be done in such a way as to allow different implementations when one os/architecture has a better way of doi

Re: [lldb-dev] Listing memory regions in lldb

2016-05-13 Thread Adrian McCarthy via lldb-dev
lution. > > Would a patch also need to provide a command to dump this information as > it can be awkward to have data that's only accessible via the API? > > *Howard Hellyer* > IBM Runtime Technologies, IBM Systems > > > > > Greg Clayton wrote on 12/05/2016 19:

Re: [lldb-dev] Listing memory regions in lldb

2016-05-13 Thread Howard Hellyer via lldb-dev
9:09:49: > From: Greg Clayton > To: Howard Hellyer/UK/IBM@IBMGB > Cc: lldb-dev@lists.llvm.org > Date: 12/05/2016 19:10 > Subject: Re: [lldb-dev] Listing memory regions in lldb > > We have a way internally with: > > virtual Error > lldb_private::Process::GetMemoryR

Re: [lldb-dev] Listing memory regions in lldb

2016-05-12 Thread Jim Ingham via lldb-dev
Oh, that's a cute trick, but it relies on the not (at-least-to-me) obvious fact that an address in an unmapped region will return the extents of the unmapped region. For it to be useful, that needs to be a requirement of the API's implementation. It seems to me it would be much clearer to have

Re: [lldb-dev] Listing memory regions in lldb

2016-05-12 Thread Greg Clayton via lldb-dev
We have a way internally with: virtual Error lldb_private::Process::GetMemoryRegionInfo (lldb::addr_t load_addr, MemoryRegionInfo &range_info); This isn't expose via the public API in lldb::SBProcess. If you want, you can expose this. We would need to expose a SBMemoryRegionInfo and the

Re: [lldb-dev] Listing memory regions in lldb

2016-05-12 Thread Jim Ingham via lldb-dev
You should be able to enumerate the memory that is occupied by loaded executables, by getting the list of loaded Modules from the target, and iterate through the all the Sections. The Sections know their loaded locations. I assume all the mapped ones will return a valid load address from GetL

[lldb-dev] Listing memory regions in lldb

2016-05-12 Thread Howard Hellyer via lldb-dev
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* call