llvm-project/lldb/source/API
Ulrich Weigand bb00d0b6b2 Support Linux on SystemZ as platform
This patch adds support for Linux on SystemZ:
- A new ArchSpec value of eCore_s390x_generic
- A new directory Plugins/ABI/SysV-s390x providing an ABI implementation
- Register context support
- Native Linux support including watchpoint support
- ELF core file support
- Misc. support throughout the code base (e.g. breakpoint opcodes)
- Test case updates to support the platform

This should provide complete support for debugging the SystemZ platform.
Not yet supported are optional features like transaction support (zEC12)
or SIMD vector support (z13).

There is no instruction emulation, since our ABI requires that all code
provide correct DWARF CFI at all PC locations in .eh_frame to support
unwinding (i.e. -fasynchronous-unwind-tables is on by default).

The implementation follows existing platforms in a mostly straightforward
manner.  A couple of things that are different:

- We do not use PTRACE_PEEKUSER / PTRACE_POKEUSER to access single registers,
  since some registers (access register) reside at offsets in the user area
  that are multiples of 4, but the PTRACE_PEEKUSER interface only allows
  accessing aligned 8-byte blocks in the user area.  Instead, we use a s390
  specific ptrace interface PTRACE_PEEKUSR_AREA / PTRACE_POKEUSR_AREA that
  allows accessing a whole block of the user area in one go, so in effect
  allowing to treat parts of the user area as register sets.

- SystemZ hardware does not provide any means to implement read watchpoints,
  only write watchpoints.  In fact, we can only support a *single* write
  watchpoint (but this can span a range of arbitrary size).  In LLDB this
  means we support only a single watchpoint.  I've set all test cases that
  require read watchpoints (or multiple watchpoints) to expected failure
  on the platform.  [ Note that there were two test cases that install
  a read/write watchpoint even though they nowhere rely on the "read"
  property.  I've changed those to simply use plain write watchpoints. ]

Differential Revision: http://reviews.llvm.org/D18978

llvm-svn: 266308
2016-04-14 14:28:34 +00:00
..
CMakeLists.txt cmake: provide flag that enables 'log enable --stack' to provide useful file/function info on POSIX systems 2015-10-14 14:52:15 +00:00
SBAddress.cpp Reduce header footprint of Target.h 2015-03-03 19:23:09 +00:00
SBAttachInfo.cpp SBTarget::Attach(SBAttachInfo &) was changed to not be asynchronous back in February and this affected Xcode's abililty to cancel an attach to process by name. 2015-10-05 22:58:37 +00:00
SBBlock.cpp Handle the case when a variable is only valid in part of the enclosing scope 2016-02-25 12:23:37 +00:00
SBBreakpoint.cpp Fix Clang-tidy modernize-use-nullptr warnings in include/lldb/API and source/API; other minor fixes. 2015-10-31 01:22:59 +00:00
SBBreakpointLocation.cpp sweep up -Wformat warnings from gcc 2014-04-04 04:06:10 +00:00
SBBroadcaster.cpp Change over the broadcaster/listener process to hold shared or weak pointers 2016-03-07 21:50:25 +00:00
SBCommandInterpreter.cpp Fix Clang-tidy modernize-use-nullptr warnings in include/lldb/API and source/API; other minor fixes. 2015-10-31 01:22:59 +00:00
SBCommandReturnObject.cpp Fix FILE * leak in Python API 2016-03-25 23:40:32 +00:00
SBCommunication.cpp Create a ConnectionGenericFile class for Windows. 2014-10-06 21:23:09 +00:00
SBCompileUnit.cpp Add APIs on SBFunction and SBCompileUnit to inquire about the language type that the function/compile unit is defined in 2014-11-17 23:06:20 +00:00
SBData.cpp Included <inttypes.h> in a few headers that were 2014-04-19 03:09:28 +00:00
SBDebugger.cpp Change over the broadcaster/listener process to hold shared or weak pointers 2016-03-07 21:50:25 +00:00
SBDeclaration.cpp sweep up -Wformat warnings from gcc 2014-04-04 04:06:10 +00:00
SBError.cpp sweep up -Wformat warnings from gcc 2014-04-04 04:06:10 +00:00
SBEvent.cpp Don't #include "lldb-python.h" from anywhere. 2015-05-29 17:41:47 +00:00
SBExecutionContext.cpp This adds a "batch mode" to lldb kinda like the gdb batch mode. It will quit the debugger 2014-10-14 01:20:07 +00:00
SBExpressionOptions.cpp Expose top-level Clang expressions via the command line and the API. 2016-03-28 21:20:05 +00:00
SBFileSpec.cpp This patch stops lldb from loading a .lldbinit file from the current 2016-02-19 00:05:17 +00:00
SBFileSpecList.cpp sweep up -Wformat warnings from gcc 2014-04-04 04:06:10 +00:00
SBFrame.cpp Handle the case when a variable is only valid in part of the enclosing scope 2016-02-25 12:23:37 +00:00
SBFunction.cpp Fixed TypeMemberFunctionImpl to not use clang types directly but use the new CompilerDecl class to do the job in an abstract way. 2015-11-10 17:47:04 +00:00
SBHostOS.cpp This patch stops lldb from loading a .lldbinit file from the current 2016-02-19 00:05:17 +00:00
SBInstruction.cpp [LLDB][MIPS] A small fix in GetBreakableLoadAddress() for MIPS 2016-01-27 10:16:30 +00:00
SBInstructionList.cpp Change the default disassembly format again. First attempt at 2015-02-13 23:24:21 +00:00
SBLanguageRuntime.cpp Move things from the LanguageRuntime that obviously belong in the new Language plugin instead. 2015-09-02 01:06:46 +00:00
SBLaunchInfo.cpp Refactor many file functions to use FileSpec over strings. 2015-05-29 19:52:29 +00:00
SBLineEntry.cpp sweep up -Wformat warnings from gcc 2014-04-04 04:06:10 +00:00
SBListener.cpp Change over the broadcaster/listener process to hold shared or weak pointers 2016-03-07 21:50:25 +00:00
SBModule.cpp Now that SymbolFileDWARF supports having types in completely separate .pcm file with "-fmodules -gmodules", each SymbolFileDWARF can reference module DWARF info by looking in other DWARF files. Then if you have 1000 .o files that each reference one or more .pcm files in their debug info, a simple Module::FindTypes(...) call can end up searching the same .pcm file over and over and over. Now all internal FindTypes methods in classes (ModuleList, Module, SymbolFile) now take an extra argument: 2016-02-10 21:28:13 +00:00
SBModuleSpec.cpp
SBPlatform.cpp Fix warnings detected by -Wpessimizing-move 2015-07-28 09:18:32 +00:00
SBProcess.cpp Fix -Wformat-pedantic warning 2016-01-13 22:40:26 +00:00
SBQueue.cpp Don't #include "lldb-python.h" from anywhere. 2015-05-29 17:41:47 +00:00
SBQueueItem.cpp Don't #include "lldb-python.h" from anywhere. 2015-05-29 17:41:47 +00:00
SBSection.cpp Added functions to the C++ API, for the benefit of non-8-bit byte architectures. 2014-10-22 07:22:56 +00:00
SBSourceManager.cpp Don't #include "lldb-python.h" from anywhere. 2015-05-29 17:41:47 +00:00
SBStream.cpp First pass at LLDBRPC.framework 2015-12-15 23:03:22 +00:00
SBStringList.cpp
SBSymbol.cpp Make many mangled functions that might demangle a name be allowed to specify a language to use in order to soon support Pascal and Java demangling. Dawn Perchik will take care of making this so. 2015-07-08 22:32:23 +00:00
SBSymbolContext.cpp sweep up -Wformat warnings from gcc 2014-04-04 04:06:10 +00:00
SBSymbolContextList.cpp
SBTarget.cpp Add an "offset" option to "break set -n" and "break set -f -l". 2016-03-09 18:59:13 +00:00
SBThread.cpp Provide more information in ThreadSanitizer's JSON data. Move remaining TSan logic from SBThread to InstrumentationRuntime plugin. 2016-04-10 18:57:38 +00:00
SBThreadCollection.cpp Expose ThreadCollection in SB API 2014-09-06 01:21:19 +00:00
SBThreadPlan.cpp Don't #include "lldb-python.h" from anywhere. 2015-05-29 17:41:47 +00:00
SBType.cpp Fixed TypeMemberFunctionImpl to not use clang types directly but use the new CompilerDecl class to do the job in an abstract way. 2015-11-10 17:47:04 +00:00
SBTypeCategory.cpp Reapply r253423 and r253424 (which cleanup the data formatters iteration model, as well as the type X list commands), along with a change by Zachary Turner to bypass a MSVC bug with SFINAE 2015-11-18 19:42:44 +00:00
SBTypeEnumMember.cpp Reduce inclusion of clang headers. 2015-09-18 17:02:48 +00:00
SBTypeFilter.cpp Don't #include "lldb-python.h" from anywhere. 2015-05-29 17:41:47 +00:00
SBTypeFormat.cpp Don't #include "lldb-python.h" from anywhere. 2015-05-29 17:41:47 +00:00
SBTypeNameSpecifier.cpp ClangASTType is now CompilerType. 2015-08-11 22:53:00 +00:00
SBTypeSummary.cpp Add an 'internal' kind of summary to support one-off subclasses of TypeSummaryImpl 2015-10-29 18:58:13 +00:00
SBTypeSynthetic.cpp Don't #include "lldb-python.h" from anywhere. 2015-05-29 17:41:47 +00:00
SBUnixSignals.cpp Refactor Unix signals. 2015-07-14 01:09:28 +00:00
SBValue.cpp Make the error return more explicit when an SBValue has no value. 2015-10-30 21:43:15 +00:00
SBValueList.cpp Fix warnings found by -Wextra-semi 2015-07-22 08:12:01 +00:00
SBVariablesOptions.cpp Revert "Revert "I had recently added a new SBFrame::GetVariables() overload with yet another bool argument"" 2015-02-17 17:55:50 +00:00
SBWatchpoint.cpp sweep up -Wformat warnings from gcc 2014-04-04 04:06:10 +00:00
SystemInitializerFull.cpp Support Linux on SystemZ as platform 2016-04-14 14:28:34 +00:00
liblldb.exports Fix OSX cmake build 2016-02-18 17:01:40 +00:00
liblldb.xcode.exports Only export public symbols with the cmake build. 2015-09-04 00:00:41 +00:00