Added gdb-remote test for s packet, single stepping.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@210481 91177308-0d34-0410-b5e6-96231b3b80d8
Added gdb-remote tests around $qSupported.

Right now it just checks that qSupported returns at least
one recognized gdb stub feature.


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

We preivously had two copies of ::BytesAvailable with only trivial
differences between them, and fixes have been applied to only one of
them.

Instead of duplicating the whole function, hide the FD_SET differences
behind a macro.  This leaves only one small __APPLE__-specific #if
block, and fixes ^C on non-__APPLE__ platforms.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@210592 91177308-0d34-0410-b5e6-96231b3b80d8
Added gdb-remote test to verify M memory write.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@210594 91177308-0d34-0410-b5e6-96231b3b80d8
Fixed gdb-remote M test length parameter, added overwrite to test.

Initial check-in provided a nibble count instead of byte count for
the memory to write.  Fixed that.

Enhanced test to check for overwrite past the expected range of
writing to verify the correct amount is written.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@210602 91177308-0d34-0410-b5e6-96231b3b80d8
Add gdb-remote P register write test.

Added test that attempts to write a value to each general
purpose register that is bit-flipped from the initial read
value.  It then reads it back to see if it takes.

Right now I just assert that at least one register bit flip
write succeeds.  I added a note that on the MacOSX x86_64
debugserver case, the only writes that succeed from the GPR
set are rax thru rdx, rdi, rsi and rbp.  The failures are E32
failure-at-write-attempt issues on the debugserver end.
I'll revisit this after implementing in the llgs linux-x86_64 branch.
The packet log looks good but I may have a subtle mistake in the code.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@210681 91177308-0d34-0410-b5e6-96231b3b80d8
Restore select limitations comment for non-Apple platforms



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@210682 91177308-0d34-0410-b5e6-96231b3b80d8
Multi-line expressions in Xcode now have a space between the line number and the expression text.

<rdar://problem/17238093>


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@210718 91177308-0d34-0410-b5e6-96231b3b80d8
Track clang changes from r210764

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@210765 91177308-0d34-0410-b5e6-96231b3b80d8
Added gdb-remote P/p thread suffix test.

Improved the P writes all GPR register values test.  It now
limits itself to GPR registers that are not containers for
other registers.  Pulled in improvements from the llgs branch.

Note on Linux llgs I'm able to write a much wider range
of registers successfully with $P using the bitflip test than I am able
to write with debugserver.  Might be worth drilling into.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@210818 91177308-0d34-0410-b5e6-96231b3b80d8
Fix up extra whitespace from previous commit.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@210821 91177308-0d34-0410-b5e6-96231b3b80d8
Added the ability to save core files:

(lldb) file /bin/ls
(lldb) b malloc
(lldb) run
(lldb) process save-core /tmp/ls.core

Each ObjectFile plug-in now has the option to save core files by registering a new static callback.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@210864 91177308-0d34-0410-b5e6-96231b3b80d8
Initial merge of some of the iOS 8 / Mac OS X Yosemite specific
lldb support.  I'll be doing more testing & cleanup but I wanted to
get the initial checkin done.

This adds a new SBExpressionOptions::SetLanguage API for selecting a
language of an expression.

I added adds a new SBThread::GetInfoItemByPathString for retriving
information about a thread from that thread's StructuredData.

I added a new StructuredData class for representing
key-value/array/dictionary information (e.g. JSON formatted data).
Helper functions to read JSON and create a StructuredData object,
and to print a StructuredData object in JSON format are included.

A few Cocoa / Cocoa Touch data formatters were updated by Enrico
to track changes in iOS 8 / Yosemite.

Before we query a thread's extended information, the system runtime may 
provide hints to the remote debug stub that it will use to retrieve values
out of runtime structures.  I added a new SystemRuntime method 
AddThreadExtendedInfoPacketHints which allows the SystemRuntime to add 
key-value type data to the initial request that we send to the remote stub.

The thread-format formatter string can now retrieve values out of a thread's
extended info structured data.  The default thread-format string picks up
two of these - thread.info.activity.name and thread.info.trace_messages.

I added a new "jThreadExtendedInfo" packet in debugserver; I will
add documentation to the lldb-gdb-remote.txt doc soon.  It accepts
JSON formatted arguments (most importantly, "thread":threadnum) and
it returns a variety of information regarding the thread to lldb
in JSON format.  This JSON return is scanned into a StructuredData
object that is associated with the thread; UI layers can query the
thread's StructuredData to see if key-values are present, and if
so, show them to the user.  These key-values are likely to be
specific to different targets with some commonality among many
targets.  For instance, many targets will be able to advertise the
pthread_t value for a thread.

I added an initial rough cut of "thread info" command which will print
the information about a thread from the jThreadExtendedInfo result.
I need to do more work to make this format reasonably.

Han Ming added calls into the pmenergy and pmsample libraries if
debugserver is run on Mac OS X Yosemite to get information about the
inferior's power use.

I added support to debugserver for gathering the Genealogy information
about threads, if it exists, and returning it in the jThreadExtendedInfo
JSON result.


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


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

Address the 'variable set but not used' warning from GCC.  In some cases a few
additional calls were removed where there should be no visible side effects of
the calls (i.e. should not effect any cached state).

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@210879 91177308-0d34-0410-b5e6-96231b3b80d8
Core: address comparison of signed and unsigned types

Add a cast to ensure that the comparison is done with the same sign type.
Identified by GCC.

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@210880 91177308-0d34-0410-b5e6-96231b3b80d8
Interpreter: explicitly initialize base class

Initialise base class std::enable_shared_from_this explicitly.  Identified by
GCC.

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@210881 91177308-0d34-0410-b5e6-96231b3b80d8
Interpreter: kill some dead code

Remove commented out code and an unnecessary associated scope.  No functional
change.

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@210882 91177308-0d34-0410-b5e6-96231b3b80d8
Added gdb-remote stop packet expedited register tests.

Expedited registers currently checked for are pc, fp and sp.

Also broke out the gdb-remote base test case logic into
class gdbremote_testcase.GdbRemoteTestCaseBase in the new
gdbremote_testcase.py file.

TestGdbRemoteExpeditedRegisters.py is the first gdb-remote area
to be contained in its own test case class file.

The monolithic TestLldbGdbServer.py has been modified to derive
from gdbremote_testcase.GdbRemoteTestCaseBase.  Soon I will
pull out all the gdb-remote functional area tests from that class
into separate classes.

I'm intending to start all GdbRemote test cases with GdbRemote
so it is easy to run them all with a -p pattern match on the
test run infrastructure.

Also scanned and removed all cases of whitespace-only lines in
the files I touched.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@210931 91177308-0d34-0410-b5e6-96231b3b80d8
Don't dereference target if it is NULL. 

Caught by the clang static analyzer by Jason Molenda.



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