The current behavior is definitely correct. An Address without a section is generally going to be something like a stack or heap address. Those definitely have load addresses of whatever their value is.
I'm not sure what it means to have a file address represented as an offset not a section with offset. That might end up matching some address in an object file on load, but that's entirely an accident from lldb's perspective. Can you not make this as a section relative thing when it is a file address? Jim > On Dec 11, 2018, at 10:42 AM, Pavel Labath <pa...@labath.sk> wrote: > > 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). > > _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits