lldb - towards AArch64 being recognised as platform architecture

See http://reviews.llvm.org/D4381.

Change by Paul Osmialowski.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@216668 91177308-0d34-0410-b5e6-96231b3b80d8
llgs: add proper exec support for Linux.

This change:
* properly captures execs in NativeProcessLinux.
* clears out all non-main-thread thread metadata in NativeProcessLinux on exec.
* adds a DidExec() method to the NativeProcessProtocol delegate.
* clears out the auxv data cache when we exec (on Linux).

This is a small part of the llgs for local Linux debugging work going on here:
https://github.com/tfiala/lldb/tree/dev-llgs-local

I'm breaking it into small patches.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@216670 91177308-0d34-0410-b5e6-96231b3b80d8
Ensure the Host wait4 thread is able to show pid in thread name.

For hosts that cannot support long thread names, shrink the host
wait4 thread name so that it does not truncate the PID in the thread name.

Change by Shawn Best.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@216686 91177308-0d34-0410-b5e6-96231b3b80d8
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
lldb - fix misleading "valid target indexes are" error message

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

Change by Paul Osmialowski.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@216766 91177308-0d34-0410-b5e6-96231b3b80d8
Fix a test broken by r216564.

llgs Linux is no longer doing the translation to some gdb fixed signal
numbers.  This change modifies the test method to take in the signo
expected for a segfault.  The debugserver test uses the fixed gdb number,
and everything else uses signal.SIGSEGV for the platform.

Sidenote: I somehow did not see this reported in multicore tests.
I will need to verify that we aren't missing test failures in that
script.  I need to verify why this wasn't more obvious with
test/dosep.py.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@216770 91177308-0d34-0410-b5e6-96231b3b80d8
Fixed a build problem dueo to changes in the
way ownership of memory buffers is handled in
clang's SourceManager.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@216810 91177308-0d34-0410-b5e6-96231b3b80d8
Merge remote-tracking branch 'upstream/master' into gsoc
Add an interface on ArchSpec to provide lldb client code
with a mechanism to query if the current target architecture
has non 8-bit bytes.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@216867 91177308-0d34-0410-b5e6-96231b3b80d8
Merge remote-tracking branch 'upstream/master' into gsoc