labath added a comment.

@jankratochvil wrote:

> That is because it fixed failing ReadMemory (due to PAGE_SIZE size reading 
> shared library name overlapping to a next page which is accidentally unmapped)


Does this mean that there is a bug in lldb-server, where some memory read 
requests fail if they span an unreadable page. Can this also be triggered by a 
$m packet? Would you be interested in distilling that into a test?

In D63868#1560990 <https://reviews.llvm.org/D63868#1560990>, @jankratochvil 
wrote:

> In D63868#1560872 <https://reviews.llvm.org/D63868#1560872>, @aadsm wrote:
>
> > I don't think we can stop loading/unloading the libraries in 
> > `ProcessGDBRemote::LoadModules`. The windows dynamic loader relies on this
>
>
> Then it could be Windows-specific.


I also think it would be good to move this stuff into the windows loader. Right 
now we have a lot of confusion about who is responsible for "loading" modules 
into a target. Some processes (I think mostly post-mortem plugins) do the 
loading themselves. Others create dynamic loader plugins to do that. And in the 
case of svr4, we have ProcessGDBRemote creating a DynamicLoader plugin, which 
then calls back into the process to do the actual loading. That seems too 
convoluted to me...

I think it would be better to do the loading inside the DynamicLoader plugin, 
and have `ProcessGDBRemote::LoadModules` be responsible only for sending the 
appropriate qXfer packet and parsing the response. The fact that loading the 
libraries from a `LoadedModuleInfoList` is largely similar for posix&windows 
can be handled (at a later date) by factoring the common code into a utility 
function, a common base class or something else...


Repository:
  rLLDB LLDB

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D63868/new/

https://reviews.llvm.org/D63868



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to