llvm-project/lldb
Jason Molenda 60f0bd4944 Add a new capability to RegisterContextLLDB: To recognize when the
Full UnwindPlan is trying to do an impossible unwind; in that case
invalidate the Full UnwindPlan and replace it with the architecture
default unwind plan.

This is a scenario that happens occasionally with arm unwinds in
particular; the instruction analysis based full unwindplan can
mis-parse the functions and the stack walk stops prematurely.  Now
we can do a simpleminded frame-chain walk to find the caller frame
and continue the unwind.  It's not ideal but given the complicated
nature of analyzing the arm functions, and the lack of eh_frame
information on iOS, it is a distinct improvement and fixes some
long-standing problems with the unwinder on that platform.  

This is fixing <rdar://problem/12091421>.  I may re-use this
invalidate feature in the future if I can identify other cases where
the full unwindplan's unwind information is clearly incorrect.

This checkin also includes some cleanup for the volatile register
definition in the arm ABI plugin for <rdar://problem/10652166> 
although work remains to be done for that bug.

llvm-svn: 166757
2012-10-26 06:08:58 +00:00
..
docs Mention that the code signing process also applies to Mountain Lion 2012-10-13 17:06:33 +00:00
examples Allow operating system plug-ins to specify the address for registers so we don't have to create data up front. 2012-10-25 17:56:31 +00:00
include Add a new capability to RegisterContextLLDB: To recognize when the 2012-10-26 06:08:58 +00:00
lib Patch submitted by Dan Malea -- I introduced a dependency between 2012-10-04 02:16:06 +00:00
lldb.xcodeproj Watchpoints remember the type of the expression or variable they were set with, and use 2012-10-23 07:20:06 +00:00
lldb.xcworkspace I accidentally committed some changes to the 2011-12-21 21:30:33 +00:00
resources Bump to lldb-168, debugserver-193. 2012-09-20 06:42:30 +00:00
scripts <rdar://problem/12523238> Commit 1 of 3 2012-10-23 19:54:09 +00:00
source Add a new capability to RegisterContextLLDB: To recognize when the 2012-10-26 06:08:58 +00:00
test Add a teardown function to TestAbbreviations so it doesn't error out when running for two archs. 2012-10-25 23:52:28 +00:00
tools eArgTypePath was removed in r166533; change -c to 2012-10-24 03:29:40 +00:00
utils Minor cleanup. 2012-03-05 18:25:29 +00:00
www Document target.source-map as the replacement for gdb's directory command. 2012-10-26 04:38:09 +00:00
.gitignore Remove "llvm" from list of things to ignore. This results in the 2012-03-03 06:43:59 +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 Don't force libc++ and c++11 on everyone. 2012-09-14 17:09:06 +00:00