Fixed the IRInterpreter's handling of "this" and
"self" when those pointers are in registers.
Previously in this case the IRInterpreter would
handle them just as if the user had typed in
"$rdi", which isn't safe because $rdi is passed
in through the argument struct.

Now we correctly break out all three cases (i.e.,
normal variables in registers, $reg, and this/self),
and handle them in a way that's a little bit easier
to read and change.

This results in more accurate printing of "this" and
"self" pointers all around.  I have strengthened the
optimized-code test case for Objective-C to ensure
that we catch regressions in this area reliably in
the future.

<rdar://problem/12693963>


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@169924 91177308-0d34-0410-b5e6-96231b3b80d8
Adding a validation callback mechanism to OptionValueString (such a feature might theoretically be added to the general OptionValue base class should the need arise)
Using this mechanism, making sure that the options to pass a summary string or a named summary to frame variable do not have invalid values

<rdar://problem/11576143>



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@169927 91177308-0d34-0410-b5e6-96231b3b80d8
<rdar://problem/12780507>

Fix add-dsym ("target symbols add") to correctly add a dSYM file when the target arch doesn't match the arch of the module.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@169952 91177308-0d34-0410-b5e6-96231b3b80d8
Add a LOG_TARGET log to Target::SetDefaultArchitecture
to track any architecture setting there.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@169958 91177308-0d34-0410-b5e6-96231b3b80d8
Option changes:
the option to print the runtime-specific description has been modified in the frame variable, memory read and expression command.

All three commands now support a --object-description option, with a shortcut of -O (uppercase letter o)

This is a breaking change:
frame variable used --objc as the long option name
expression used -o as a shortcut
memory read uses --objd as the long option name

Hopefully, most users won't be affected by the change since people tend to access "expression --object-description" under the alias "po" which still works

The test suite has been tweaked accordingly.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@169961 91177308-0d34-0410-b5e6-96231b3b80d8
Allow LLDB to work with dSYM files that have a DWARF compile unit with nothing else to support clang's new -gline-tables-only mode of compiling.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@169994 91177308-0d34-0410-b5e6-96231b3b80d8
Minor grammar and style fixes in documentation.

<rdar://problem/12861963>
<rdar://problem/12861904>


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@169997 91177308-0d34-0410-b5e6-96231b3b80d8
Fixed a few bugs in the "step in" thread plan logic.
Added a "step-in-target" flag to "thread step-in" so if you have something like:

Process 28464 stopped
* thread #1: tid = 0x1c03, function: main , stop reason = breakpoint 1.1
    frame #0: 0x0000000100000e08 a.out`main at main.c:62
   61         
-> 62         int A6 = complex (a(4), b(5), c(6)); // Stop here to step targetting b and hitting breakpoint.
   63             

and you want to get into "complex" skipping a, b and c, you can do:

(lldb) step -t complex
Process 28464 stopped
* thread #1: tid = 0x1c03, function: complex , stop reason = step in
    frame #0: 0x0000000100000d0d a.out`complex at main.c:44
   41     
   42     int complex (int first, int second, int third)
   43     {
-> 44         return first + second + third;  // Step in targetting complex should stop here
   45     }
   46         
   47     int main (int argc, char const *argv[])



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@170008 91177308-0d34-0410-b5e6-96231b3b80d8
<rdar://problem/10898363>

Emitting a warning when defining a summary or a synthetic provider and the function/class name provided does not correspond to a valid scripting object

Also using this chance to edit a few error messages from weird "internal error" markers to actual user-legible data!



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@170013 91177308-0d34-0410-b5e6-96231b3b80d8
Added a warning about using the lldb.target, etc. for anything other than convenience when using the
script command.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@170014 91177308-0d34-0410-b5e6-96231b3b80d8
Marking TestPrintStackTraces.py as expectedFailureLinux (due to lack of multi-threaded debugging support).

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@170043 91177308-0d34-0410-b5e6-96231b3b80d8
Remove insufficient linkedit address check; the problem
is deeper than that and avoiding the crash in this
one part of code won't solve anything.  I know where
the real problem is now.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@170068 91177308-0d34-0410-b5e6-96231b3b80d8
Marking test_lldb_iter_frame in TestLLDBIterator.py as expectedFailureLinux (due to lack of multi-threaded debugging support).

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@170074 91177308-0d34-0410-b5e6-96231b3b80d8
Made "target modules add" flush the process to
reset stack frames etc.

<rdar://problem/12842024>


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@170079 91177308-0d34-0410-b5e6-96231b3b80d8
<rdar://problem/12831670> 
For iOS native lldb, don't initialize the ModuleList notifier
callback.  See the added comment for details on how this is a problem
in that environment.  We'll need to restructure how the ModuleDidLoad
notification is called vrs. when the DynamicLoader pluging has had
a chance to set the Sectino load addresses.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@170082 91177308-0d34-0410-b5e6-96231b3b80d8
<rdar://problem/12700464>

Fixing an issue where errors in command files sourced as arguments to command-line lldb (e.g. ./lldb -s foo.cmd) would not be shown to the user



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@170146 91177308-0d34-0410-b5e6-96231b3b80d8
Removed the == and != operators from ArchSpec, since
equality can be strict or loose and we want code to
explicitly choose one or the other.

Also renamed the Compare function to IsEqualTo, to
avoid confusion.

<rdar://problem/12856749>


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@170152 91177308-0d34-0410-b5e6-96231b3b80d8
Fixed a thinko in the handling of the case where more than one thread had stopped with real stop reasons at the same time.  
Should be that if any of the threads wants to stop, we should stop.  The opposite was what was actually happening

<rdar://problem/12869725>


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@170153 91177308-0d34-0410-b5e6-96231b3b80d8
<rdar://problem/11689939>

Supporting a compact display syntax for ObjC pointers where 0x00.....0 is replaced by a much more legible "nil"
e.g. this would show:
(NSArray *) $2 = nil
instead of:
(NSArray *) $2 = 0x0000000000000000 <nil>



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@170161 91177308-0d34-0410-b5e6-96231b3b80d8
Fixing the -f option so that one specify multiple filters, e.g.

./dotest.py  -C clang --arch x86_64 --arch i386  -v -t -f ObjCDataFormatterTestCase.test_appkit_with_dsym_and_run_command -f ObjCDataFormatterTestCase.test_appkit_with_dwarf_and_run_command -f TestObjCBuiltinTypes.test_with_dsym_and_python_api -f TestObjCBuiltinTypes.test_with_dwarf_and_python_api -f ObjCDataFormatterTestCase.test_appkit_with_dsym_and_run_command -f ObjCDataFormatterTestCase.test_appkit_with_dwarf_and_run_command -f TestObjCBuiltinTypes.test_with_dsym_and_python_api -f -TestObjCBuiltinTypes.test_with_dwarf_and_python_api

The previous implementation would only remember the last filter passed, and consequently break redo.py



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