llvm-project/lldb/source
Greg Clayton cff851ab33 Added functions to lldb_private::Address to set an address from a load address
and set the address as an opcode address or as a callable address. This is
needed in various places in the thread plans to make sure that addresses that
might be found in symbols or runtime might already have extra bits set (ARM/Thumb).
The new functions are:

bool
Address::SetCallableLoadAddress (lldb::addr_t load_addr, Target *target);

bool
Address::SetOpcodeLoadAddress (lldb::addr_t load_addr, Target *target);

SetCallableLoadAddress will initialize a section offset address if it can,
and if so it might possibly set some bits in the address to make the address
callable (bit zero might get set for ARM for Thumb functions).

SetOpcodeLoadAddress will initialize a section offset address using the
specified target and it will strip any special address bits if needed 
depending on the target.

Fixed the ABIMacOSX_arm::GetArgumentValues() function to require arguments
1-4 to be in the needed registers (previously this would incorrectly fallback
to the stack) and return false if unable to get the register values. The
function was also modified to first look for the generic argument registers
and then fall back to finding the registers by name.

Fixed the objective trampoline handler to use the new Address::SetOpcodeLoadAddress
function when needed to avoid address mismatches when trying to complete 
steps into objective C methods. Make similar fixes inside the
AppleThreadPlanStepThroughObjCTrampoline::ShouldStop() function.

Modified ProcessGDBRemote::BuildDynamicRegisterInfo(...) to be able to deal with
the new generic argument registers.

Modified RNBRemote::HandlePacket_qRegisterInfo() to handle the new generic
argument registers on the debugserver side.

Modified DNBArchMachARM::NumSupportedHardwareBreakpoints() to be able to 
detect how many hardware breakpoint registers there are using a darwin sysctl.
Did the same for hardware watchpoints in 
DNBArchMachARM::NumSupportedHardwareWatchpoints().

llvm-svn: 131834
2011-05-22 04:32:55 +00:00
..
API Lock the target API mutex correctly in all cases and make sure m_opaque_sp 2011-05-20 23:51:26 +00:00
Breakpoint Moved a lot of simple functions from StoppointLocation.cpp to be inlined in 2011-05-19 18:17:41 +00:00
Commands Symbol may not have a demangled name, use GetName to get the best name available in this case. 2011-05-18 05:04:36 +00:00
Core Added functions to lldb_private::Address to set an address from a load address 2011-05-22 04:32:55 +00:00
Expression Added a function to lldb_private::Address: 2011-05-18 22:01:49 +00:00
Host Better way to build the CFCPP sources as part of liblldbHostMacOSX. 2011-05-20 18:18:09 +00:00
Interpreter When installing the binary part of the LLDB Python modules, symlink to the 2011-05-20 18:14:37 +00:00
Plugins Added functions to lldb_private::Address to set an address from a load address 2011-05-22 04:32:55 +00:00
Symbol Use a SmallVector here instead of a VLA. 2011-05-19 23:33:46 +00:00
Target Moved a lot of simple functions from StoppointLocation.cpp to be inlined in 2011-05-19 18:17:41 +00:00
Utility API fix and missing headers. 2011-05-19 23:07:19 +00:00
Makefile Patch from Jean-Daniel Dupas: 2010-07-12 23:14:00 +00:00
lldb-log.cpp Deleted one too many characters... 2011-05-07 01:03:33 +00:00
lldb.cpp Build and initialise the Darwin ABI plugins on all platforms 2011-05-19 18:32:34 +00:00