bulbazord added a comment.

In D144528#4145593 <https://reviews.llvm.org/D144528#4145593>, @jasonmolenda 
wrote:

> I'm OK with giving this a try.  SectionLoadList::SetSectionLoadAddress 
> specifically notes that there are cases were sections overlap in the virtual 
> address space.  All of the binaries in the shared cache have a single 
> LINKEDIT segment that is shared, and each binary's mach-o 
> `LC_SYMTAB`/`LC_DYSYMTAB` load command will point to different part of that 
> same LINKEDIT.  From lldb's perspective, that means every Module in the 
> shared cache has a LINKEDIT Section that overlaps with all the others.
>
> LINKEDIT is special in that nothing in TEXT/DATA refers to anything in it.  
> The dynamic linker (ld.so, dyld) needs to process it on userland processes, 
> and the debugger needs to read it to create a symbol table, but it basically 
> doesn't need to be loaded in memory at all until you make a call to an 
> external binary and the dynamic linker needs to do something.  With the 
> Darwin kernel (xnu), it's not loaded in memory at all, it only exists in the 
> original binary file that is processed into the in-memory kernel image.
>
> tl;dr it's fine if LINKEDIT's "overlap" because lldb will never need to take 
> an addr_t and figure out which Section it is located in.  (because an addr_t 
> in the LINKEDIT segment of the shared cache would point to EVERY ObjectFile 
> in the shared cache, if it was all reported correctly.)
>
> We may find that enabling this warning fires for some unintended situation 
> that we're not looking at right now, but we can re-evaluate if that turns out 
> to be the case.

Out of curiosity, is the scenario you're describing not already handled by 
`DynamicLoaderDarwin::UpdateImageLoadAddress`? That method specifically checks 
to see if a section is `__LINKEDIT` to figure out if we should be emitting a 
warning. Should I be doing the same thing here?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D144528

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

Reply via email to