llvm-project/lldb
Greg Clayton 9b72eb7101 ABI plug-ins must implement the following pure virtual functions:
virtual bool
ABI::StackUsesFrames () = 0;

Should return true if your ABI uses frames when doing stack backtraces. This
means a frame pointer is used that points to the previous stack frame in some
way or another.

virtual bool
ABI::CallFrameAddressIsValid (lldb::addr_t cfa) = 0;

Should take a look at a call frame address (CFA) which is just the stack
pointer value upon entry to a function. ABIs usually impose alignment
restrictions (4, 8 or 16 byte aligned), and zero is usually not allowed.
This function should return true if "cfa" is valid call frame address for
the ABI, and false otherwise. This is used by the generic stack frame unwinding
code to help determine when a stack ends.

virtual bool
ABI::CodeAddressIsValid (lldb::addr_t pc) = 0;    

Validates a possible PC value and returns true if an opcode can be at "pc".
Some ABIs or architectures have fixed width instructions and must be aligned
to a 2 or 4 byte boundary. "pc" can be an opcode or a callable address which
means the load address might be decorated with extra bits (such as bit zero
to indicate a thumb function call for ARM targets), so take this into account
when returning true or false. The address should also be validated to ensure
it is a valid address for the address size of the inferior process. 32 bit
targets should make sure the address is less than UINT32_MAX.

Modified UnwindLLDB to use the new ABI functions to help it properly terminate
stacks.


Modified the mach-o function that extracts dependent files to not resolve the
path as the paths inside a binary might not match those on the current
host system.

llvm-svn: 132021
2011-05-24 23:06:02 +00:00
..
docs Spelling changes applied from lldb_spelling.diffs from Bruce Mitchener. 2011-01-08 20:28:42 +00:00
examples Modified to take advantage of the iteration protocol for our lldb container objects. 2011-04-28 23:26:17 +00:00
include ABI plug-ins must implement the following pure virtual functions: 2011-05-24 23:06:02 +00:00
lib Link in the MCJIT. Fixes makefile build. 2011-05-24 01:54:03 +00:00
lldb.xcodeproj This commit integrates support for the LLVM MCJIT 2011-05-23 21:40:23 +00:00
lldb.xcworkspace Adding a Xcode workspace for lldb. 2011-01-27 20:15:39 +00:00
resources Bumped Xcode project versions to lldb-46 and debugserver-131. 2011-01-29 07:14:26 +00:00
scripts Added comment. 2011-05-24 22:57:42 +00:00
source ABI plug-ins must implement the following pure virtual functions: 2011-05-24 23:06:02 +00:00
test Now that we have added a post-processing step for adding truth value testing to 2011-05-24 18:22:45 +00:00
tools Fixed an issue in the EmulateInstructionARM there the IT opcode was trying to 2011-05-23 18:04:09 +00:00
utils Fix usage comment. 2011-05-23 21:56:08 +00:00
www Reroute the blog link to the LLVM blog site. 2011-04-22 21:03:40 +00:00
INSTALL.txt You'll need to be running Mac OS X to get lldb to build right now. 2010-06-09 07:29:26 +00:00
LICENSE.TXT test commit 2010-06-09 03:55:24 +00:00
Makefile python-config in Makefiles 2011-05-19 23:09:48 +00:00