Added setting: platform.plugin.linux.use-llgs-for-local (boolean), defaults to false

This setting is not yet hooked up to anything.  In preparation for
adding/testing llgs for local Linux debugging.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@216690 91177308-0d34-0410-b5e6-96231b3b80d8
lldb - Register Context Linux ARM64

Yet another step toward ARM64 support. With this commit, lldb-gdbserver started on ARM64 target can be accessed by lldb running on desktop PC and it can process simple commands (like 'continue'). Still ARM64 support lacks NativeRegisterContextLinux_arm64.* code which waits to be implemented.
Based on similar files for Linux x86_64 and Darwin ARM64. Due to common code extraction from Darwin related files, lldb should be tested for any unexpected regression on Darwin ARM64 machines too.

See the following for more details:
http://reviews.llvm.org/D4580
http://lists.cs.uiuc.edu/pipermail/lldb-commits/Week-of-Mon-20140825/012670.html

Change by Paul Osmialowski.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@216737 91177308-0d34-0410-b5e6-96231b3b80d8
lldb - ELF: add ARM64 relocation jump slot handling in ELFHeader.

See http://reviews.llvm.org/D4579 for more details.

Change by Paul Osmialowski.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@216739 91177308-0d34-0410-b5e6-96231b3b80d8
Add arbitrary command line flags to llgs/debugserver startup for local debugging.

This patch accepts environment variables of the form:
LLDB_DEBUGSERVER_EXTRA_ARG_n

where n starts with 1, and may continue nearly indefinitely (up through std::numeric_limits<uint32_t>::max()).

The code loops around, starting with 1, until it doesn't find one of the environment variables.  For each one it does find defined, it appends the environment variable's contents to the end of the debugserver/llgs startup command line issued when the stub is started for local debugging.

I am using this to add arbitrary startup commands to the llgs command line for turning on additional logging.  For example:

export LLDB_DEBUGSERVER_EXTRA_ARG_1="-c"
export LLDB_DEBUGSERVER_EXTRA_ARG_2="log enable -f /tmp/llgs_packets.log gdb-remote packets"
export LLDB_DEBUGSERVER_EXTRA_ARG_3="-c"
export LLDB_DEBUGSERVER_EXTRA_ARG_4="log enable -f /tmp/llgs_process.log lldb process"


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@216745 91177308-0d34-0410-b5e6-96231b3b80d8
Allow "breakpoint command add" to add commands to more than one breakpoint at a time.

<rdar://problem/13314462>


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@216747 91177308-0d34-0410-b5e6-96231b3b80d8
Consolidate UnixSignals setting/getting in Process.

See http://reviews.llvm.org/D5108 for details.

This change does the following:

* eliminates the Process::GetUnixSignals() virtual method and replaces with a fixed getter.
* replaces the Process UnixSignals storage with a shared pointer.
* adds a Process constructor variant that can be passed the UnixSignalsSP. When the constructor without the UnixSignalsSP is specified, the Host's default UnixSignals is used.
* adds a host-specific version of GetUnixSignals() that is used when we need the host's appropriate UnixSignals variant.
* replaces GetUnixSignals() overrides in PlatformElfCore, ProcessGDBRemote, ProcessFreeBSD and ProcessLinux with code that appropriately sets the Process::UnixSignals for the process.

This change also enables some future patches that will enable llgs to be used for local Linux debugging.


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