SBValue::Cast is deprecated. This does not work as reliably as free-form casting via the expression evaluator. Some of our clients depend on it, so we can't remove it. But any new adopters should favor the expression parser as the way forward

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@221540 91177308-0d34-0410-b5e6-96231b3b80d8
This was meant to be count, not m_count

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@221541 91177308-0d34-0410-b5e6-96231b3b80d8
Remove the top-level DebugDriverThread in ProcessWindows.

Originally the idea was that we would queue requests to a master
thread that would dispatch them to other slave threads each
responsible for debugging an individual process.  This might make
some scenarios more scalable and responsive, but for now it seems
to be unwarranted complexity for no observable benefit.

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@221561 91177308-0d34-0410-b5e6-96231b3b80d8
fix for unit tests finding path to LLDB.h  http://reviews.llvm.org/D6177

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@221566 91177308-0d34-0410-b5e6-96231b3b80d8
LLGS Android target support - for Andy Chien : http://reviews.llvm.org/D6166

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@221570 91177308-0d34-0410-b5e6-96231b3b80d8
Fix a corner case with the handling of noreturn functions.
If a noreturn function was the last function in a section,
we wouldn't correctly back up the saved-pc value into the
correct section leading to us showing the wrong function in
the backtrace.

Also add a backtrace test with an attempt to elicit this 
particular layout.  It happens to work out with clang -Os
but other compilers may not quite get the same layout I'm
getting at that opt setting.  We'll still be exercising the
basic noreturn handling in the unwinder even if we don't get
one function at the very end of a section.

<rdar://problem/16051613> 


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@221575 91177308-0d34-0410-b5e6-96231b3b80d8
Add a RegisterNumber class to RegisterContextLLDB.h and start using
it in RegisterContext.cpp.

There's a lot of bookkeeping code in RegisterContextLLDB where it has
to convert between different register numbering schemes and it makes 
some methods like SavedLocationForRegister very hard to read or
maintain.  Abstract all of the details about different register numbering
systems for a given register into this new class to make it easier 
to understand what the method is doing.

Also add register name printing to all of the logging -- that's easy to
get now that I've got an object to represent the register numbers.

There were some gnarly corner cases of this method that I believe
I've translated correctly - initial testing looks good but it's
possible I missed a corner case, especially with architectures which
uses a link-register aka return address register like arm32/arm64.
Basic behavior is correct but there are a lot of corner casese that are
handled in this method ...



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@221577 91177308-0d34-0410-b5e6-96231b3b80d8
LLGS Android target support (r221570) missed adding some files: http://reviews.llvm.org/D6166

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@221593 91177308-0d34-0410-b5e6-96231b3b80d8
Fix new noreturn test on !darwin platforms

r221575 introduced a NoreturnUnwind test that did not skip the dsym
test on non-darwin platforms, and had the @dwarf_test case as an exact
copy of the dsym case (including the test name, test_with_dsym).


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@221611 91177308-0d34-0410-b5e6-96231b3b80d8
Fix a problem reported by Ed Maste where the test harness was failing to call bound methods as cleanup hooks

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@221624 91177308-0d34-0410-b5e6-96231b3b80d8
Fix selectors not being objc-uniquified in the expression parser after a recent renaming in clang (clang change for revision 221451). This broke all objective C expressions in LLDB.

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@221632 91177308-0d34-0410-b5e6-96231b3b80d8
Fix comments to match the current reality.

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@221633 91177308-0d34-0410-b5e6-96231b3b80d8
Fix some compiler warnings, one of which was a legit bug.

MSVC warns that not all control paths return a value when a switch
doesn't have a default case handler.  Changed explicit value checks
to a default check.

Also, it caught a case where bitwise AND was being used instead of
logical AND.  I'm not sure what this fixes, but presumably it is
not covered by any kind of test case.

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@221636 91177308-0d34-0410-b5e6-96231b3b80d8
[ProcessWindows] Notify process plugin when the launch succeeds.

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@221637 91177308-0d34-0410-b5e6-96231b3b80d8
Cleaned up the StringLexer a little bit.  It turns
out we only want to roll back text that was in the
buffer to begin with, so it's not necessary to
provide a pushback stack.

I'm going to use this slightly cleaner API to perform
lookahead for the Objective-C runtime type parser.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@221640 91177308-0d34-0410-b5e6-96231b3b80d8
[ProcessWindows] Implement breakpoint stop / resume on Windows.

This patch implements basic support for stopping at breakpoints
and resuming later.  While a breakpoint is stopped at, LLDB will
cease to process events in the debug loop, effectively suspending
the process, and then resume later when ProcessWindows::DoResume
is called.

As a side effect, this also correctly handles the loader breakpoint
(i.e. the initial stop) so that LLDB goes through the correct state
sequence during the initial process launch.

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@221642 91177308-0d34-0410-b5e6-96231b3b80d8
Added a testcase that checks that fairly complicated
structures are parsed safely by the Objective-C runtime.

Also made some modifications to the way we parse structs
in the runtime to avoid mis-parsing @ followed by the name
of the next field.

<rdar://problem/18887634>


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@221643 91177308-0d34-0410-b5e6-96231b3b80d8
Fix error handling in NativeProcessLinux::AttachToInferior: http://reviews.llvm.org/D6158

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@221647 91177308-0d34-0410-b5e6-96231b3b80d8
Fixed two issues in the type encoding parser:

- A correctness issue: with assertions disabled,
  ReadQuotedString would misbehave; and

- A performance issue: BuildType used a long
  chain of if()s; I changed that to two switch
  statements.  That also makes the code much
  nicer to step through when debugging it.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@221651 91177308-0d34-0410-b5e6-96231b3b80d8
Ignore templated aggregates in the Objective-C
runtime.  This eliminates potential confusion
when the compiler has to deal with these weird
types later on.

One day I'd like to actually generate the proper
templates, but this is not the day that I write
the parser code to do that.

<rdar://problem/18887634>


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@221658 91177308-0d34-0410-b5e6-96231b3b80d8