From 00e6fbfee9e400dd02397b92636f2d82f8761c0c Mon Sep 17 00:00:00 2001 From: Greg Clayton Date: Fri, 22 Jul 2011 16:46:35 +0000 Subject: Make the SBAddress class easier to use when using the public API. SBTarget changes include changing: bool SBTarget::ResolveLoadAddress (lldb::addr_t vm_addr, lldb::SBAddress& addr); to be: lldb::SBAddress SBTarget::ResolveLoadAddress (lldb::addr_t vm_addr); SBAddress can how contruct itself using a load address and a target which can be used to resolve the address: SBAddress (lldb::addr_t load_addr, lldb::SBTarget &target); This will actually just call the new SetLoadAddress accessor: void SetLoadAddress (lldb::addr_t load_addr, lldb::SBTarget &target); This function will always succeed in making a SBAddress object that can be used in API calls (even if "target" isn't valid). If "target" is valid and there are sections currently loaded, then it will resolve the address to a section offset address if it can. Else an address with a NULL section and an offset that is the "load_addr" that was passed in. We do this because a load address might be from the heap or stack. llvm-svn: 135770 --- lldb/scripts/Python/interface/SBAddress.i | 7 +++++++ lldb/scripts/Python/interface/SBTarget.i | 5 ++--- 2 files changed, 9 insertions(+), 3 deletions(-) (limited to 'lldb/scripts/Python/interface') diff --git a/lldb/scripts/Python/interface/SBAddress.i b/lldb/scripts/Python/interface/SBAddress.i index 83d624fb927..91b483b48df 100644 --- a/lldb/scripts/Python/interface/SBAddress.i +++ b/lldb/scripts/Python/interface/SBAddress.i @@ -50,6 +50,9 @@ public: SBAddress (const lldb::SBAddress &rhs); + // Create an address by resolving a load address using the supplied target + SBAddress (lldb::addr_t load_addr, lldb::SBTarget &target); + ~SBAddress (); bool @@ -64,6 +67,10 @@ public: addr_t GetLoadAddress (const lldb::SBTarget &target) const; + void + SetLoadAddress (lldb::addr_t load_addr, + lldb::SBTarget &target); + bool OffsetAddress (addr_t offset); diff --git a/lldb/scripts/Python/interface/SBTarget.i b/lldb/scripts/Python/interface/SBTarget.i index 30626566f52..3ad6bed704a 100644 --- a/lldb/scripts/Python/interface/SBTarget.i +++ b/lldb/scripts/Python/interface/SBTarget.i @@ -343,9 +343,8 @@ public: void Clear (); - bool - ResolveLoadAddress (lldb::addr_t vm_addr, - lldb::SBAddress& addr); + lldb::SBAddress + ResolveLoadAddress (lldb::addr_t vm_addr); SBSymbolContext ResolveSymbolContextForAddress (const SBAddress& addr, -- cgit v1.2.3