[Lldb-commits] [PATCH] D55356: Add a method to get the "base" file address of an object file

Pavel Labath via lldb-commits lldb-commits at lists.llvm.org
Tue Dec 11 10:42:07 PST 2018


On 11/12/2018 19:17, Jim Ingham wrote:
> It the section isn't in the target's SectionLoadList, then GetLoadAddress should return LLDB_INVALID_ADDRESS.  I.e. this bit from Section::GetLoadBaseAddress:
> 
>      load_base_addr = target->GetSectionLoadList().GetSectionLoadAddress(
>          const_cast<Section *>(this)->shared_from_this());
> 
> should return LLDB_INVALID_ADDRESS because the section isn't in the load list.
> 
> Are we putting sections in the target's section load list before we've actually seen them loaded.  I'm pretty sure we shouldn't do that.
> 
> Jim
> 
> 

The issue here is that the Address object in question is not backed by 
any section. It has a null section, and just an offset member.
In this case Address::GetLoadAddress just decides to return that address 
as a load address, which I imagine is correct in some situations, but in 
this case our intention was for this address to represent a file address 
(which would still need to be adjusted to account for where the module 
ended up being loaded).




More information about the lldb-commits mailing list