<div dir="ltr">Hi Todd,<div><br></div><div>I am bit lost in code base and might be confused, but I think we are not getting ProcessElfCore::DoReadMemory still right.</div><div><br></div><div>Your fix (<a href="http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/elf-core/ProcessElfCore.cpp?r1=196125&r2=201214">rev 201214</a>) to <a href="http://llvm.org/PR18769">llvm.org/PR18769</a> with not merging VMRange's regions if those are from other location in core file is correct.</div>
<div>But when we are requested to do read at boundary of two such not merged VMRanges, we will read correct data from from file to the end of 'last_entry->data.GetRangeEnd()' and then we fill rest with '\0'.</div>
<div>I think that we should split our requested read operation, to all such ranges in this case.</div><div><br></div><div>Is that correct?</div><div><br></div><div>I initially thought it was the problem I am after, since I am able to still reproduce this issue for some dumps (mainly multithreaded ones), but I haven't nailed it down to this case. However it is still my belief that there is (at least potential) issue there.</div>
<div><br></div><div>I will be able provide this fix during the weekend, given my analysis is correct, but for now I wanted to focus on my original issue - which for now leads to ModuleList not being preserved for some reason once created in DynamicLoaderPOSIXDYLD::DidLaunch for core files.</div>
<div><br></div><div>Yet it is still my guess and I need to play with bit more.</div><div><br></div><div>Cheers,</div><div>/Piotr</div></div>