From owner-svn-src-vendor@freebsd.org Sat Jul 1 13:25:04 2017 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 054A8D899DE; Sat, 1 Jul 2017 13:25:04 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 93279FE3; Sat, 1 Jul 2017 13:25:03 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v61DP2Hk022585; Sat, 1 Jul 2017 13:25:02 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v61DOxu8022540; Sat, 1 Jul 2017 13:24:59 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201707011324.v61DOxu8022540@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Sat, 1 Jul 2017 13:24:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r320543 - in vendor/lldb/dist: include/lldb include/lldb/Breakpoint include/lldb/Core include/lldb/DataFormatters include/lldb/Host include/lldb/Host/common include/lldb/Host/linux incl... X-SVN-Group: vendor X-SVN-Commit-Author: dim X-SVN-Commit-Paths: in vendor/lldb/dist: include/lldb include/lldb/Breakpoint include/lldb/Core include/lldb/DataFormatters include/lldb/Host include/lldb/Host/common include/lldb/Host/linux include/lldb/Host/posix inclu... X-SVN-Commit-Revision: 320543 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 01 Jul 2017 13:25:04 -0000 Author: dim Date: Sat Jul 1 13:24:58 2017 New Revision: 320543 URL: https://svnweb.freebsd.org/changeset/base/320543 Log: Vendor import of lldb trunk r306956: https://llvm.org/svn/llvm-project/lldb/trunk@306956 Added: vendor/lldb/dist/include/lldb/Utility/Connection.h (contents, props changed) vendor/lldb/dist/include/lldb/Utility/IOObject.h (contents, props changed) vendor/lldb/dist/include/lldb/Utility/StructuredData.h (contents, props changed) vendor/lldb/dist/include/lldb/Utility/Timer.h (contents, props changed) vendor/lldb/dist/include/lldb/Utility/TraceOptions.h (contents, props changed) vendor/lldb/dist/source/Plugins/Process/Linux/ProcessorTrace.cpp (contents, props changed) vendor/lldb/dist/source/Plugins/Process/Linux/ProcessorTrace.h (contents, props changed) vendor/lldb/dist/source/Utility/Connection.cpp (contents, props changed) vendor/lldb/dist/source/Utility/IOObject.cpp (contents, props changed) vendor/lldb/dist/source/Utility/StructuredData.cpp (contents, props changed) vendor/lldb/dist/source/Utility/Timer.cpp (contents, props changed) vendor/lldb/dist/unittests/Process/Linux/ vendor/lldb/dist/unittests/Process/Linux/CMakeLists.txt (contents, props changed) vendor/lldb/dist/unittests/Process/Linux/ProcessorTraceTest.cpp (contents, props changed) vendor/lldb/dist/unittests/Symbol/Inputs/ vendor/lldb/dist/unittests/Symbol/Inputs/basic-call-frame-info.yaml vendor/lldb/dist/unittests/Symbol/TestDWARFCallFrameInfo.cpp (contents, props changed) vendor/lldb/dist/unittests/Utility/Helpers/ vendor/lldb/dist/unittests/Utility/Helpers/CMakeLists.txt (contents, props changed) vendor/lldb/dist/unittests/Utility/Helpers/MockTildeExpressionResolver.cpp (contents, props changed) vendor/lldb/dist/unittests/Utility/Helpers/MockTildeExpressionResolver.h (contents, props changed) vendor/lldb/dist/unittests/Utility/Helpers/TestUtilities.cpp (contents, props changed) vendor/lldb/dist/unittests/Utility/Helpers/TestUtilities.h (contents, props changed) vendor/lldb/dist/unittests/Utility/Inputs/ vendor/lldb/dist/unittests/Utility/Inputs/StructuredData-basic.json vendor/lldb/dist/unittests/Utility/StructuredDataTest.cpp (contents, props changed) vendor/lldb/dist/unittests/Utility/TimerTest.cpp (contents, props changed) Deleted: vendor/lldb/dist/include/lldb/Core/Connection.h vendor/lldb/dist/include/lldb/Core/StructuredData.h vendor/lldb/dist/include/lldb/Core/Timer.h vendor/lldb/dist/include/lldb/Core/TraceOptions.h vendor/lldb/dist/include/lldb/Host/IOObject.h vendor/lldb/dist/source/Core/Connection.cpp vendor/lldb/dist/source/Core/StructuredData.cpp vendor/lldb/dist/source/Core/Timer.cpp vendor/lldb/dist/source/Host/common/IOObject.cpp vendor/lldb/dist/unittests/Core/StructuredDataTest.cpp vendor/lldb/dist/unittests/Core/TimerTest.cpp vendor/lldb/dist/unittests/Utility/Mocks/CMakeLists.txt vendor/lldb/dist/unittests/Utility/Mocks/MockTildeExpressionResolver.cpp vendor/lldb/dist/unittests/Utility/Mocks/MockTildeExpressionResolver.h Modified: vendor/lldb/dist/include/lldb/Breakpoint/Breakpoint.h vendor/lldb/dist/include/lldb/Breakpoint/BreakpointOptions.h vendor/lldb/dist/include/lldb/Core/Event.h vendor/lldb/dist/include/lldb/Core/SearchFilter.h vendor/lldb/dist/include/lldb/Core/StructuredDataImpl.h vendor/lldb/dist/include/lldb/DataFormatters/TypeSummary.h vendor/lldb/dist/include/lldb/DataFormatters/TypeSynthetic.h vendor/lldb/dist/include/lldb/Host/File.h vendor/lldb/dist/include/lldb/Host/Host.h vendor/lldb/dist/include/lldb/Host/MainLoopBase.h vendor/lldb/dist/include/lldb/Host/Socket.h vendor/lldb/dist/include/lldb/Host/XML.h vendor/lldb/dist/include/lldb/Host/common/NativeProcessProtocol.h vendor/lldb/dist/include/lldb/Host/linux/Support.h vendor/lldb/dist/include/lldb/Host/posix/ConnectionFileDescriptorPosix.h vendor/lldb/dist/include/lldb/Host/windows/ConnectionGenericFileWindows.h vendor/lldb/dist/include/lldb/Interpreter/ScriptInterpreter.h vendor/lldb/dist/include/lldb/Symbol/DWARFCallFrameInfo.h vendor/lldb/dist/include/lldb/Symbol/FuncUnwinders.h vendor/lldb/dist/include/lldb/Symbol/UnwindTable.h vendor/lldb/dist/include/lldb/Target/ABI.h vendor/lldb/dist/include/lldb/Target/InstrumentationRuntime.h vendor/lldb/dist/include/lldb/Target/InstrumentationRuntimeStopInfo.h vendor/lldb/dist/include/lldb/Target/Process.h vendor/lldb/dist/include/lldb/Target/StopInfo.h vendor/lldb/dist/include/lldb/Target/StructuredDataPlugin.h vendor/lldb/dist/include/lldb/Target/SystemRuntime.h vendor/lldb/dist/include/lldb/Target/Thread.h vendor/lldb/dist/include/lldb/Target/ThreadPlanPython.h vendor/lldb/dist/include/lldb/Target/ThreadSpec.h vendor/lldb/dist/include/lldb/Utility/JSON.h vendor/lldb/dist/include/lldb/lldb-enumerations.h vendor/lldb/dist/include/lldb/lldb-private-interfaces.h vendor/lldb/dist/lldb.xcodeproj/project.pbxproj vendor/lldb/dist/packages/Python/lldbsuite/test/functionalities/return-value/TestReturnValue.py vendor/lldb/dist/packages/Python/lldbsuite/test/make/Android.rules vendor/lldb/dist/scripts/Xcode/build-llvm.py vendor/lldb/dist/scripts/Xcode/repo.py vendor/lldb/dist/scripts/analyze-project-deps.py vendor/lldb/dist/source/API/SBCommunication.cpp vendor/lldb/dist/source/API/SBStructuredData.cpp vendor/lldb/dist/source/API/SBTarget.cpp vendor/lldb/dist/source/API/SBThread.cpp vendor/lldb/dist/source/API/SBThreadPlan.cpp vendor/lldb/dist/source/API/SBTraceOptions.cpp vendor/lldb/dist/source/API/SystemInitializerFull.cpp vendor/lldb/dist/source/Commands/CommandObjectFrame.cpp vendor/lldb/dist/source/Commands/CommandObjectLog.cpp vendor/lldb/dist/source/Commands/CommandObjectTarget.cpp vendor/lldb/dist/source/Commands/CommandObjectThread.cpp vendor/lldb/dist/source/Core/CMakeLists.txt vendor/lldb/dist/source/Core/Communication.cpp vendor/lldb/dist/source/Core/Disassembler.cpp vendor/lldb/dist/source/Core/FormatEntity.cpp vendor/lldb/dist/source/Core/Mangled.cpp vendor/lldb/dist/source/Core/Module.cpp vendor/lldb/dist/source/Host/CMakeLists.txt vendor/lldb/dist/source/Host/common/Host.cpp vendor/lldb/dist/source/Host/common/Symbols.cpp vendor/lldb/dist/source/Host/freebsd/Host.cpp vendor/lldb/dist/source/Host/linux/Support.cpp vendor/lldb/dist/source/Host/macosx/Host.mm vendor/lldb/dist/source/Host/macosx/Symbols.cpp vendor/lldb/dist/source/Host/netbsd/Host.cpp vendor/lldb/dist/source/Host/openbsd/Host.cpp vendor/lldb/dist/source/Host/posix/ConnectionFileDescriptorPosix.cpp vendor/lldb/dist/source/Host/windows/Host.cpp vendor/lldb/dist/source/Initialization/SystemInitializerCommon.cpp vendor/lldb/dist/source/Interpreter/CommandInterpreter.cpp vendor/lldb/dist/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.cpp vendor/lldb/dist/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.h vendor/lldb/dist/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.cpp vendor/lldb/dist/source/Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.h vendor/lldb/dist/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.cpp vendor/lldb/dist/source/Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.h vendor/lldb/dist/source/Plugins/ABI/SysV-arm/ABISysV_arm.cpp vendor/lldb/dist/source/Plugins/ABI/SysV-arm/ABISysV_arm.h vendor/lldb/dist/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.cpp vendor/lldb/dist/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.h vendor/lldb/dist/source/Plugins/ABI/SysV-hexagon/ABISysV_hexagon.cpp vendor/lldb/dist/source/Plugins/ABI/SysV-hexagon/ABISysV_hexagon.h vendor/lldb/dist/source/Plugins/ABI/SysV-i386/ABISysV_i386.cpp vendor/lldb/dist/source/Plugins/ABI/SysV-i386/ABISysV_i386.h vendor/lldb/dist/source/Plugins/ABI/SysV-mips/ABISysV_mips.cpp vendor/lldb/dist/source/Plugins/ABI/SysV-mips/ABISysV_mips.h vendor/lldb/dist/source/Plugins/ABI/SysV-mips64/ABISysV_mips64.cpp vendor/lldb/dist/source/Plugins/ABI/SysV-mips64/ABISysV_mips64.h vendor/lldb/dist/source/Plugins/ABI/SysV-ppc/ABISysV_ppc.cpp vendor/lldb/dist/source/Plugins/ABI/SysV-ppc/ABISysV_ppc.h vendor/lldb/dist/source/Plugins/ABI/SysV-ppc64/ABISysV_ppc64.cpp vendor/lldb/dist/source/Plugins/ABI/SysV-ppc64/ABISysV_ppc64.h vendor/lldb/dist/source/Plugins/ABI/SysV-s390x/ABISysV_s390x.cpp vendor/lldb/dist/source/Plugins/ABI/SysV-s390x/ABISysV_s390x.h vendor/lldb/dist/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.cpp vendor/lldb/dist/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.h vendor/lldb/dist/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.h vendor/lldb/dist/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.h vendor/lldb/dist/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.h vendor/lldb/dist/source/Plugins/InstrumentationRuntime/ASan/ASanRuntime.h vendor/lldb/dist/source/Plugins/InstrumentationRuntime/MainThreadChecker/MainThreadCheckerRuntime.h vendor/lldb/dist/source/Plugins/InstrumentationRuntime/TSan/TSanRuntime.h vendor/lldb/dist/source/Plugins/InstrumentationRuntime/UBSan/UBSanRuntime.h vendor/lldb/dist/source/Plugins/Language/ObjC/Cocoa.cpp vendor/lldb/dist/source/Plugins/Language/ObjC/NSSet.cpp vendor/lldb/dist/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp vendor/lldb/dist/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp vendor/lldb/dist/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp vendor/lldb/dist/source/Plugins/ObjectFile/JIT/ObjectFileJIT.cpp vendor/lldb/dist/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp vendor/lldb/dist/source/Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.cpp vendor/lldb/dist/source/Plugins/OperatingSystem/Python/OperatingSystemPython.cpp vendor/lldb/dist/source/Plugins/OperatingSystem/Python/OperatingSystemPython.h vendor/lldb/dist/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp vendor/lldb/dist/source/Plugins/Process/Linux/CMakeLists.txt vendor/lldb/dist/source/Plugins/Process/Linux/NativeProcessLinux.cpp vendor/lldb/dist/source/Plugins/Process/Linux/NativeProcessLinux.h vendor/lldb/dist/source/Plugins/Process/POSIX/CMakeLists.txt vendor/lldb/dist/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp vendor/lldb/dist/source/Plugins/Process/Utility/DynamicRegisterInfo.h vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextLLDB.cpp vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp vendor/lldb/dist/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp vendor/lldb/dist/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h vendor/lldb/dist/source/Plugins/Process/gdb-remote/ThreadGDBRemote.h vendor/lldb/dist/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h vendor/lldb/dist/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugAranges.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugLine.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFDebugPubnames.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp vendor/lldb/dist/source/Plugins/SymbolFile/Symtab/SymbolFileSymtab.cpp vendor/lldb/dist/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp vendor/lldb/dist/source/Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.cpp vendor/lldb/dist/source/Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.h vendor/lldb/dist/source/Plugins/UnwindAssembly/x86/x86AssemblyInspectionEngine.cpp vendor/lldb/dist/source/Plugins/UnwindAssembly/x86/x86AssemblyInspectionEngine.h vendor/lldb/dist/source/Symbol/DWARFCallFrameInfo.cpp vendor/lldb/dist/source/Symbol/FuncUnwinders.cpp vendor/lldb/dist/source/Symbol/ObjectFile.cpp vendor/lldb/dist/source/Symbol/Symtab.cpp vendor/lldb/dist/source/Symbol/UnwindTable.cpp vendor/lldb/dist/source/Symbol/Variable.cpp vendor/lldb/dist/source/Target/ABI.cpp vendor/lldb/dist/source/Target/ObjCLanguageRuntime.cpp vendor/lldb/dist/source/Target/Platform.cpp vendor/lldb/dist/source/Target/Process.cpp vendor/lldb/dist/source/Target/Target.cpp vendor/lldb/dist/source/Target/TargetList.cpp vendor/lldb/dist/source/Target/ThreadSpec.cpp vendor/lldb/dist/source/Utility/CMakeLists.txt vendor/lldb/dist/source/Utility/JSON.cpp vendor/lldb/dist/tools/debugserver/source/RNBRemote.cpp vendor/lldb/dist/tools/debugserver/source/debugserver.cpp vendor/lldb/dist/tools/lldb-server/Acceptor.h vendor/lldb/dist/unittests/Core/CMakeLists.txt vendor/lldb/dist/unittests/Interpreter/CMakeLists.txt vendor/lldb/dist/unittests/Interpreter/TestCompletion.cpp vendor/lldb/dist/unittests/ObjectFile/ELF/CMakeLists.txt vendor/lldb/dist/unittests/ObjectFile/ELF/TestObjectFileELF.cpp vendor/lldb/dist/unittests/Process/CMakeLists.txt vendor/lldb/dist/unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp vendor/lldb/dist/unittests/Process/minidump/CMakeLists.txt vendor/lldb/dist/unittests/Process/minidump/MinidumpParserTest.cpp vendor/lldb/dist/unittests/Symbol/CMakeLists.txt vendor/lldb/dist/unittests/SymbolFile/DWARF/CMakeLists.txt vendor/lldb/dist/unittests/SymbolFile/DWARF/SymbolFileDWARFTests.cpp vendor/lldb/dist/unittests/SymbolFile/PDB/CMakeLists.txt vendor/lldb/dist/unittests/SymbolFile/PDB/SymbolFilePDBTests.cpp vendor/lldb/dist/unittests/Target/CMakeLists.txt vendor/lldb/dist/unittests/Target/ModuleCacheTest.cpp vendor/lldb/dist/unittests/UnwindAssembly/x86/Testx86AssemblyInspectionEngine.cpp vendor/lldb/dist/unittests/Utility/CMakeLists.txt vendor/lldb/dist/unittests/Utility/TildeExpressionResolverTest.cpp vendor/lldb/dist/unittests/tools/lldb-server/tests/MessageObjects.cpp vendor/lldb/dist/www/projects.html Modified: vendor/lldb/dist/include/lldb/Breakpoint/Breakpoint.h ============================================================================== --- vendor/lldb/dist/include/lldb/Breakpoint/Breakpoint.h Sat Jul 1 13:24:50 2017 (r320542) +++ vendor/lldb/dist/include/lldb/Breakpoint/Breakpoint.h Sat Jul 1 13:24:58 2017 (r320543) @@ -26,8 +26,8 @@ #include "lldb/Breakpoint/Stoppoint.h" #include "lldb/Core/Event.h" #include "lldb/Core/SearchFilter.h" -#include "lldb/Core/StructuredData.h" #include "lldb/Utility/StringList.h" +#include "lldb/Utility/StructuredData.h" namespace lldb_private { Modified: vendor/lldb/dist/include/lldb/Breakpoint/BreakpointOptions.h ============================================================================== --- vendor/lldb/dist/include/lldb/Breakpoint/BreakpointOptions.h Sat Jul 1 13:24:50 2017 (r320542) +++ vendor/lldb/dist/include/lldb/Breakpoint/BreakpointOptions.h Sat Jul 1 13:24:58 2017 (r320543) @@ -17,9 +17,9 @@ // Other libraries and framework includes // Project includes -#include "lldb/Core/StructuredData.h" #include "lldb/Utility/Baton.h" #include "lldb/Utility/StringList.h" +#include "lldb/Utility/StructuredData.h" #include "lldb/lldb-private.h" namespace lldb_private { Modified: vendor/lldb/dist/include/lldb/Core/Event.h ============================================================================== --- vendor/lldb/dist/include/lldb/Core/Event.h Sat Jul 1 13:24:50 2017 (r320542) +++ vendor/lldb/dist/include/lldb/Core/Event.h Sat Jul 1 13:24:58 2017 (r320543) @@ -11,9 +11,9 @@ #define liblldb_Event_h_ #include "lldb/Core/Broadcaster.h" -#include "lldb/Core/StructuredData.h" #include "lldb/Host/Predicate.h" #include "lldb/Utility/ConstString.h" +#include "lldb/Utility/StructuredData.h" #include "lldb/lldb-defines.h" // for DISALLOW_COPY_AND_ASSIGN #include "lldb/lldb-forward.h" // for EventDataSP, ProcessSP, Struct... Modified: vendor/lldb/dist/include/lldb/Core/SearchFilter.h ============================================================================== --- vendor/lldb/dist/include/lldb/Core/SearchFilter.h Sat Jul 1 13:24:50 2017 (r320542) +++ vendor/lldb/dist/include/lldb/Core/SearchFilter.h Sat Jul 1 13:24:58 2017 (r320543) @@ -11,7 +11,7 @@ #define liblldb_SearchFilter_h_ #include "lldb/Core/FileSpecList.h" -#include "lldb/Core/StructuredData.h" +#include "lldb/Utility/StructuredData.h" #include "lldb/Utility/FileSpec.h" // for FileSpec #include "lldb/lldb-forward.h" // for SearchFilterSP, TargetSP, Modu... Modified: vendor/lldb/dist/include/lldb/Core/StructuredDataImpl.h ============================================================================== --- vendor/lldb/dist/include/lldb/Core/StructuredDataImpl.h Sat Jul 1 13:24:50 2017 (r320542) +++ vendor/lldb/dist/include/lldb/Core/StructuredDataImpl.h Sat Jul 1 13:24:58 2017 (r320543) @@ -11,10 +11,10 @@ #define liblldb_StructuredDataImpl_h_ #include "lldb/Core/Event.h" -#include "lldb/Core/StructuredData.h" #include "lldb/Target/StructuredDataPlugin.h" #include "lldb/Utility/Status.h" #include "lldb/Utility/Stream.h" +#include "lldb/Utility/StructuredData.h" #include "lldb/lldb-enumerations.h" #include "lldb/lldb-forward.h" #include "llvm/ADT/StringRef.h" Modified: vendor/lldb/dist/include/lldb/DataFormatters/TypeSummary.h ============================================================================== --- vendor/lldb/dist/include/lldb/DataFormatters/TypeSummary.h Sat Jul 1 13:24:50 2017 (r320542) +++ vendor/lldb/dist/include/lldb/DataFormatters/TypeSummary.h Sat Jul 1 13:24:58 2017 (r320543) @@ -24,8 +24,8 @@ #include "lldb/lldb-public.h" #include "lldb/Core/FormatEntity.h" -#include "lldb/Core/StructuredData.h" #include "lldb/Utility/Status.h" +#include "lldb/Utility/StructuredData.h" namespace lldb_private { class TypeSummaryOptions { Modified: vendor/lldb/dist/include/lldb/DataFormatters/TypeSynthetic.h ============================================================================== --- vendor/lldb/dist/include/lldb/DataFormatters/TypeSynthetic.h Sat Jul 1 13:24:50 2017 (r320542) +++ vendor/lldb/dist/include/lldb/DataFormatters/TypeSynthetic.h Sat Jul 1 13:24:58 2017 (r320543) @@ -25,8 +25,8 @@ #include "lldb/lldb-enumerations.h" #include "lldb/lldb-public.h" -#include "lldb/Core/StructuredData.h" #include "lldb/Core/ValueObject.h" +#include "lldb/Utility/StructuredData.h" namespace lldb_private { class SyntheticChildrenFrontEnd { Modified: vendor/lldb/dist/include/lldb/Host/File.h ============================================================================== --- vendor/lldb/dist/include/lldb/Host/File.h Sat Jul 1 13:24:50 2017 (r320542) +++ vendor/lldb/dist/include/lldb/Host/File.h Sat Jul 1 13:24:58 2017 (r320543) @@ -10,8 +10,8 @@ #ifndef liblldb_File_h_ #define liblldb_File_h_ -#include "lldb/Host/IOObject.h" #include "lldb/Host/PosixApi.h" +#include "lldb/Utility/IOObject.h" #include "lldb/Utility/Status.h" #include "lldb/lldb-private.h" Modified: vendor/lldb/dist/include/lldb/Host/Host.h ============================================================================== --- vendor/lldb/dist/include/lldb/Host/Host.h Sat Jul 1 13:24:50 2017 (r320542) +++ vendor/lldb/dist/include/lldb/Host/Host.h Sat Jul 1 13:24:58 2017 (r320543) @@ -238,6 +238,9 @@ class Host { (public) uint32_t line_no); static size_t GetEnvironment(StringList &env); + + static std::unique_ptr + CreateDefaultConnection(llvm::StringRef url); }; } // namespace lldb_private Modified: vendor/lldb/dist/include/lldb/Host/MainLoopBase.h ============================================================================== --- vendor/lldb/dist/include/lldb/Host/MainLoopBase.h Sat Jul 1 13:24:50 2017 (r320542) +++ vendor/lldb/dist/include/lldb/Host/MainLoopBase.h Sat Jul 1 13:24:58 2017 (r320543) @@ -10,12 +10,10 @@ #ifndef lldb_Host_posix_MainLoopBase_h_ #define lldb_Host_posix_MainLoopBase_h_ -#include - -#include "llvm/Support/ErrorHandling.h" - -#include "lldb/Host/IOObject.h" +#include "lldb/Utility/IOObject.h" #include "lldb/Utility/Status.h" +#include "llvm/Support/ErrorHandling.h" +#include namespace lldb_private { Modified: vendor/lldb/dist/include/lldb/Host/Socket.h ============================================================================== --- vendor/lldb/dist/include/lldb/Host/Socket.h Sat Jul 1 13:24:50 2017 (r320542) +++ vendor/lldb/dist/include/lldb/Host/Socket.h Sat Jul 1 13:24:58 2017 (r320543) @@ -15,9 +15,9 @@ #include "lldb/lldb-private.h" -#include "lldb/Host/IOObject.h" #include "lldb/Host/Predicate.h" #include "lldb/Host/SocketAddress.h" +#include "lldb/Utility/IOObject.h" #include "lldb/Utility/Status.h" #ifdef _WIN32 Modified: vendor/lldb/dist/include/lldb/Host/XML.h ============================================================================== --- vendor/lldb/dist/include/lldb/Host/XML.h Sat Jul 1 13:24:50 2017 (r320542) +++ vendor/lldb/dist/include/lldb/Host/XML.h Sat Jul 1 13:24:58 2017 (r320543) @@ -24,8 +24,8 @@ #include "llvm/ADT/StringRef.h" // Project includes -#include "lldb/Core/StructuredData.h" #include "lldb/Utility/StreamString.h" +#include "lldb/Utility/StructuredData.h" #include "lldb/lldb-private.h" namespace lldb_private { Modified: vendor/lldb/dist/include/lldb/Host/common/NativeProcessProtocol.h ============================================================================== --- vendor/lldb/dist/include/lldb/Host/common/NativeProcessProtocol.h Sat Jul 1 13:24:50 2017 (r320542) +++ vendor/lldb/dist/include/lldb/Host/common/NativeProcessProtocol.h Sat Jul 1 13:24:58 2017 (r320543) @@ -10,10 +10,10 @@ #ifndef liblldb_NativeProcessProtocol_h_ #define liblldb_NativeProcessProtocol_h_ -#include "lldb/Core/TraceOptions.h" #include "lldb/Host/Host.h" #include "lldb/Host/MainLoop.h" #include "lldb/Utility/Status.h" +#include "lldb/Utility/TraceOptions.h" #include "lldb/lldb-private-forward.h" #include "lldb/lldb-types.h" #include "llvm/ADT/ArrayRef.h" @@ -333,7 +333,7 @@ class NativeProcessProtocol (public) //------------------------------------------------------------------ /// StopTracing API as the name suggests stops a tracing instance. /// - /// @param[in] uid + /// @param[in] traceid /// The user id of the trace intended to be stopped. Now a /// user_id may map to multiple threads in which case this API /// could be used to stop the tracing for a specific thread by @@ -346,7 +346,7 @@ class NativeProcessProtocol (public) /// @return /// Status indicating what went wrong. //------------------------------------------------------------------ - virtual Status StopTrace(lldb::user_id_t uid, + virtual Status StopTrace(lldb::user_id_t traceid, lldb::tid_t thread = LLDB_INVALID_THREAD_ID) { return Status("Not implemented"); } @@ -355,8 +355,8 @@ class NativeProcessProtocol (public) /// This API provides the trace data collected in the form of raw /// data. /// - /// @param[in] uid thread - /// The uid and thread provide the context for the trace + /// @param[in] traceid thread + /// The traceid and thread provide the context for the trace /// instance. /// /// @param[in] buffer @@ -372,7 +372,7 @@ class NativeProcessProtocol (public) /// @return /// The size of the data actually read. //------------------------------------------------------------------ - virtual Status GetData(lldb::user_id_t uid, lldb::tid_t thread, + virtual Status GetData(lldb::user_id_t traceid, lldb::tid_t thread, llvm::MutableArrayRef &buffer, size_t offset = 0) { return Status("Not implemented"); @@ -382,7 +382,7 @@ class NativeProcessProtocol (public) /// Similar API as above except it aims to provide any extra data /// useful for decoding the actual trace data. //------------------------------------------------------------------ - virtual Status GetMetaData(lldb::user_id_t uid, lldb::tid_t thread, + virtual Status GetMetaData(lldb::user_id_t traceid, lldb::tid_t thread, llvm::MutableArrayRef &buffer, size_t offset = 0) { return Status("Not implemented"); @@ -391,7 +391,7 @@ class NativeProcessProtocol (public) //------------------------------------------------------------------ /// API to query the TraceOptions for a given user id /// - /// @param[in] uid + /// @param[in] traceid /// The user id of the tracing instance. /// /// @param[in] config @@ -405,7 +405,7 @@ class NativeProcessProtocol (public) /// @param[out] config /// The actual configuration being used for tracing. //------------------------------------------------------------------ - virtual Status GetTraceConfig(lldb::user_id_t uid, TraceOptions &config) { + virtual Status GetTraceConfig(lldb::user_id_t traceid, TraceOptions &config) { return Status("Not implemented"); } Modified: vendor/lldb/dist/include/lldb/Host/linux/Support.h ============================================================================== --- vendor/lldb/dist/include/lldb/Host/linux/Support.h Sat Jul 1 13:24:50 2017 (r320542) +++ vendor/lldb/dist/include/lldb/Host/linux/Support.h Sat Jul 1 13:24:58 2017 (r320543) @@ -22,6 +22,9 @@ getProcFile(::pid_t pid, ::pid_t tid, const llvm::Twin llvm::ErrorOr> getProcFile(::pid_t pid, const llvm::Twine &file); +llvm::ErrorOr> +getProcFile(const llvm::Twine &file); + } // namespace lldb_private #endif // #ifndef LLDB_HOST_LINUX_SUPPORT_H Modified: vendor/lldb/dist/include/lldb/Host/posix/ConnectionFileDescriptorPosix.h ============================================================================== --- vendor/lldb/dist/include/lldb/Host/posix/ConnectionFileDescriptorPosix.h Sat Jul 1 13:24:50 2017 (r320542) +++ vendor/lldb/dist/include/lldb/Host/posix/ConnectionFileDescriptorPosix.h Sat Jul 1 13:24:58 2017 (r320543) @@ -19,10 +19,10 @@ // Other libraries and framework includes // Project includes -#include "lldb/Core/Connection.h" -#include "lldb/Host/IOObject.h" #include "lldb/Host/Pipe.h" #include "lldb/Host/Predicate.h" +#include "lldb/Utility/Connection.h" +#include "lldb/Utility/IOObject.h" namespace lldb_private { Modified: vendor/lldb/dist/include/lldb/Host/windows/ConnectionGenericFileWindows.h ============================================================================== --- vendor/lldb/dist/include/lldb/Host/windows/ConnectionGenericFileWindows.h Sat Jul 1 13:24:50 2017 (r320542) +++ vendor/lldb/dist/include/lldb/Host/windows/ConnectionGenericFileWindows.h Sat Jul 1 13:24:58 2017 (r320543) @@ -10,8 +10,8 @@ #ifndef liblldb_Host_windows_ConnectionGenericFileWindows_h_ #define liblldb_Host_windows_ConnectionGenericFileWindows_h_ -#include "lldb/Core/Connection.h" #include "lldb/Host/windows/windows.h" +#include "lldb/Utility/Connection.h" #include "lldb/lldb-types.h" namespace lldb_private { Modified: vendor/lldb/dist/include/lldb/Interpreter/ScriptInterpreter.h ============================================================================== --- vendor/lldb/dist/include/lldb/Interpreter/ScriptInterpreter.h Sat Jul 1 13:24:50 2017 (r320542) +++ vendor/lldb/dist/include/lldb/Interpreter/ScriptInterpreter.h Sat Jul 1 13:24:58 2017 (r320543) @@ -19,8 +19,8 @@ #include "lldb/Breakpoint/BreakpointOptions.h" #include "lldb/Core/Broadcaster.h" #include "lldb/Core/PluginInterface.h" -#include "lldb/Core/StructuredData.h" #include "lldb/Utility/Status.h" +#include "lldb/Utility/StructuredData.h" #include "lldb/Host/PseudoTerminal.h" Modified: vendor/lldb/dist/include/lldb/Symbol/DWARFCallFrameInfo.h ============================================================================== --- vendor/lldb/dist/include/lldb/Symbol/DWARFCallFrameInfo.h Sat Jul 1 13:24:50 2017 (r320542) +++ vendor/lldb/dist/include/lldb/Symbol/DWARFCallFrameInfo.h Sat Jul 1 13:24:58 2017 (r320543) @@ -34,11 +34,12 @@ namespace lldb_private { class DWARFCallFrameInfo { public: - DWARFCallFrameInfo(ObjectFile &objfile, lldb::SectionSP §ion, - lldb::RegisterKind reg_kind, bool is_eh_frame); + enum Type { EH, DWARF }; - ~DWARFCallFrameInfo(); + DWARFCallFrameInfo(ObjectFile &objfile, lldb::SectionSP §ion, Type type); + ~DWARFCallFrameInfo() = default; + // Locate an AddressRange that includes the provided Address in this // object's eh_frame/debug_info // Returns true if a range is found to cover that address. @@ -74,12 +75,20 @@ class DWARFCallFrameInfo { (public) private: enum { CFI_AUG_MAX_SIZE = 8, CFI_HEADER_SIZE = 8 }; + enum CFIVersion { + CFI_VERSION1 = 1, // DWARF v.2 + CFI_VERSION3 = 3, // DWARF v.3 + CFI_VERSION4 = 4 // DWARF v.4, v.5 + }; struct CIE { dw_offset_t cie_offset; uint8_t version; char augmentation[CFI_AUG_MAX_SIZE]; // This is typically empty or very // short. + uint8_t address_size = sizeof(uint32_t); // The size of a target address. + uint8_t segment_size = 0; // The size of a segment selector. + uint32_t code_align; int32_t data_align; uint32_t return_addr_reg_num; @@ -134,21 +143,24 @@ class DWARFCallFrameInfo { (public) ObjectFile &m_objfile; lldb::SectionSP m_section_sp; - lldb::RegisterKind m_reg_kind; - Flags m_flags; + Flags m_flags = 0; cie_map_t m_cie_map; DataExtractor m_cfi_data; - bool m_cfi_data_initialized; // only copy the section into the DE once + bool m_cfi_data_initialized = false; // only copy the section into the DE once FDEEntryMap m_fde_index; - bool m_fde_index_initialized; // only scan the section for FDEs once + bool m_fde_index_initialized = false; // only scan the section for FDEs once std::mutex m_fde_index_mutex; // and isolate the thread that does it - bool m_is_eh_frame; + Type m_type; CIESP ParseCIE(const uint32_t cie_offset); + + lldb::RegisterKind GetRegisterKind() const { + return m_type == EH ? lldb::eRegisterKindEHFrame : lldb::eRegisterKindDWARF; + } }; } // namespace lldb_private Modified: vendor/lldb/dist/include/lldb/Symbol/FuncUnwinders.h ============================================================================== --- vendor/lldb/dist/include/lldb/Symbol/FuncUnwinders.h Sat Jul 1 13:24:50 2017 (r320542) +++ vendor/lldb/dist/include/lldb/Symbol/FuncUnwinders.h Sat Jul 1 13:24:58 2017 (r320543) @@ -99,6 +99,13 @@ class FuncUnwinders { (public) Thread &thread, int current_offset); + lldb::UnwindPlanSP GetDebugFrameUnwindPlan(Target &target, + int current_offset); + + lldb::UnwindPlanSP GetDebugFrameAugmentedUnwindPlan(Target &target, + Thread &thread, + int current_offset); + lldb::UnwindPlanSP GetCompactUnwindUnwindPlan(Target &target, int current_offset); @@ -126,10 +133,12 @@ class FuncUnwinders { (public) lldb::UnwindPlanSP m_unwind_plan_assembly_sp; lldb::UnwindPlanSP m_unwind_plan_eh_frame_sp; - lldb::UnwindPlanSP m_unwind_plan_eh_frame_augmented_sp; // augmented by - // assembly inspection - // so it's valid - // everywhere + lldb::UnwindPlanSP m_unwind_plan_debug_frame_sp; + + // augmented by assembly inspection so it's valid everywhere + lldb::UnwindPlanSP m_unwind_plan_eh_frame_augmented_sp; + lldb::UnwindPlanSP m_unwind_plan_debug_frame_augmented_sp; + std::vector m_unwind_plan_compact_unwind; lldb::UnwindPlanSP m_unwind_plan_arm_unwind_sp; lldb::UnwindPlanSP m_unwind_plan_fast_sp; @@ -139,7 +148,9 @@ class FuncUnwinders { (public) // Fetching the UnwindPlans can be expensive - if we've already attempted // to get one & failed, don't try again. bool m_tried_unwind_plan_assembly : 1, m_tried_unwind_plan_eh_frame : 1, + m_tried_unwind_plan_debug_frame : 1, m_tried_unwind_plan_eh_frame_augmented : 1, + m_tried_unwind_plan_debug_frame_augmented : 1, m_tried_unwind_plan_compact_unwind : 1, m_tried_unwind_plan_arm_unwind : 1, m_tried_unwind_fast : 1, m_tried_unwind_arch_default : 1, Modified: vendor/lldb/dist/include/lldb/Symbol/UnwindTable.h ============================================================================== --- vendor/lldb/dist/include/lldb/Symbol/UnwindTable.h Sat Jul 1 13:24:50 2017 (r320542) +++ vendor/lldb/dist/include/lldb/Symbol/UnwindTable.h Sat Jul 1 13:24:58 2017 (r320543) @@ -27,6 +27,7 @@ class UnwindTable { (public) ~UnwindTable(); lldb_private::DWARFCallFrameInfo *GetEHFrameInfo(); + lldb_private::DWARFCallFrameInfo *GetDebugFrameInfo(); lldb_private::CompactUnwindInfo *GetCompactUnwindInfo(); @@ -58,6 +59,8 @@ class UnwindTable { (public) void Dump(Stream &s); void Initialize(); + llvm::Optional GetAddressRange(const Address &addr, + SymbolContext &sc); typedef std::map collection; typedef collection::iterator iterator; @@ -70,6 +73,7 @@ class UnwindTable { (public) std::mutex m_mutex; std::unique_ptr m_eh_frame_up; + std::unique_ptr m_debug_frame_up; std::unique_ptr m_compact_unwind_up; std::unique_ptr m_arm_unwind_up; Modified: vendor/lldb/dist/include/lldb/Target/ABI.h ============================================================================== --- vendor/lldb/dist/include/lldb/Target/ABI.h Sat Jul 1 13:24:50 2017 (r320542) +++ vendor/lldb/dist/include/lldb/Target/ABI.h Sat Jul 1 13:24:58 2017 (r320543) @@ -92,6 +92,16 @@ class ABI : public PluginInterface { (protected) virtual lldb::ValueObjectSP GetReturnValueObjectImpl(Thread &thread, llvm::Type &ir_type) const; + //------------------------------------------------------------------ + /// Request to get a Process shared pointer. + /// + /// This ABI object may not have been created with a Process object, + /// or the Process object may no longer be alive. Be sure to handle + /// the case where the shared pointer returned does not have an + /// object inside it. + //------------------------------------------------------------------ + lldb::ProcessSP GetProcessSP() const { return m_process_wp.lock(); } + public: virtual bool CreateFunctionEntryUnwindPlan(UnwindPlan &unwind_plan) = 0; @@ -131,13 +141,18 @@ class ABI : public PluginInterface { (protected) virtual bool GetPointerReturnRegister(const char *&name) { return false; } - static lldb::ABISP FindPlugin(const ArchSpec &arch); + static lldb::ABISP FindPlugin(lldb::ProcessSP process_sp, const ArchSpec &arch); protected: //------------------------------------------------------------------ // Classes that inherit from ABI can see and modify these //------------------------------------------------------------------ - ABI(); + ABI(lldb::ProcessSP process_sp) { + if (process_sp.get()) + m_process_wp = process_sp; + } + + lldb::ProcessWP m_process_wp; private: DISALLOW_COPY_AND_ASSIGN(ABI); Modified: vendor/lldb/dist/include/lldb/Target/InstrumentationRuntime.h ============================================================================== --- vendor/lldb/dist/include/lldb/Target/InstrumentationRuntime.h Sat Jul 1 13:24:50 2017 (r320542) +++ vendor/lldb/dist/include/lldb/Target/InstrumentationRuntime.h Sat Jul 1 13:24:58 2017 (r320543) @@ -18,7 +18,7 @@ // Other libraries and framework includes // Project includes #include "lldb/Core/PluginInterface.h" -#include "lldb/Core/StructuredData.h" +#include "lldb/Utility/StructuredData.h" #include "lldb/lldb-forward.h" #include "lldb/lldb-private.h" #include "lldb/lldb-types.h" Modified: vendor/lldb/dist/include/lldb/Target/InstrumentationRuntimeStopInfo.h ============================================================================== --- vendor/lldb/dist/include/lldb/Target/InstrumentationRuntimeStopInfo.h Sat Jul 1 13:24:50 2017 (r320542) +++ vendor/lldb/dist/include/lldb/Target/InstrumentationRuntimeStopInfo.h Sat Jul 1 13:24:58 2017 (r320543) @@ -16,8 +16,8 @@ // Other libraries and framework includes // Project includes -#include "lldb/Core/StructuredData.h" #include "lldb/Target/StopInfo.h" +#include "lldb/Utility/StructuredData.h" namespace lldb_private { Modified: vendor/lldb/dist/include/lldb/Target/Process.h ============================================================================== --- vendor/lldb/dist/include/lldb/Target/Process.h Sat Jul 1 13:24:50 2017 (r320542) +++ vendor/lldb/dist/include/lldb/Target/Process.h Sat Jul 1 13:24:58 2017 (r320543) @@ -34,9 +34,7 @@ #include "lldb/Core/Listener.h" #include "lldb/Core/LoadedModuleInfoList.h" #include "lldb/Core/PluginInterface.h" -#include "lldb/Core/StructuredData.h" #include "lldb/Core/ThreadSafeValue.h" -#include "lldb/Core/TraceOptions.h" #include "lldb/Core/UserSettingsController.h" #include "lldb/Host/HostThread.h" #include "lldb/Host/ProcessRunLock.h" @@ -50,6 +48,8 @@ #include "lldb/Target/ThreadList.h" #include "lldb/Utility/NameMatches.h" #include "lldb/Utility/Status.h" +#include "lldb/Utility/StructuredData.h" +#include "lldb/Utility/TraceOptions.h" #include "lldb/lldb-private.h" #include "llvm/ADT/ArrayRef.h" Modified: vendor/lldb/dist/include/lldb/Target/StopInfo.h ============================================================================== --- vendor/lldb/dist/include/lldb/Target/StopInfo.h Sat Jul 1 13:24:50 2017 (r320542) +++ vendor/lldb/dist/include/lldb/Target/StopInfo.h Sat Jul 1 13:24:58 2017 (r320543) @@ -16,8 +16,8 @@ // Other libraries and framework includes // Project includes -#include "lldb/Core/StructuredData.h" #include "lldb/Target/Process.h" +#include "lldb/Utility/StructuredData.h" #include "lldb/lldb-public.h" namespace lldb_private { Modified: vendor/lldb/dist/include/lldb/Target/StructuredDataPlugin.h ============================================================================== --- vendor/lldb/dist/include/lldb/Target/StructuredDataPlugin.h Sat Jul 1 13:24:50 2017 (r320542) +++ vendor/lldb/dist/include/lldb/Target/StructuredDataPlugin.h Sat Jul 1 13:24:58 2017 (r320543) @@ -11,7 +11,7 @@ #define StructuredDataPlugin_h #include "lldb/Core/PluginInterface.h" -#include "lldb/Core/StructuredData.h" +#include "lldb/Utility/StructuredData.h" namespace lldb_private { Modified: vendor/lldb/dist/include/lldb/Target/SystemRuntime.h ============================================================================== --- vendor/lldb/dist/include/lldb/Target/SystemRuntime.h Sat Jul 1 13:24:50 2017 (r320542) +++ vendor/lldb/dist/include/lldb/Target/SystemRuntime.h Sat Jul 1 13:24:58 2017 (r320543) @@ -18,10 +18,10 @@ #include "lldb/Core/ModuleList.h" #include "lldb/Core/PluginInterface.h" -#include "lldb/Core/StructuredData.h" #include "lldb/Target/QueueItem.h" #include "lldb/Target/QueueList.h" #include "lldb/Utility/ConstString.h" +#include "lldb/Utility/StructuredData.h" #include "lldb/lldb-private.h" #include "lldb/lldb-public.h" Modified: vendor/lldb/dist/include/lldb/Target/Thread.h ============================================================================== --- vendor/lldb/dist/include/lldb/Target/Thread.h Sat Jul 1 13:24:50 2017 (r320542) +++ vendor/lldb/dist/include/lldb/Target/Thread.h Sat Jul 1 13:24:58 2017 (r320543) @@ -21,11 +21,11 @@ // Project includes #include "lldb/Core/Broadcaster.h" #include "lldb/Core/Event.h" -#include "lldb/Core/StructuredData.h" #include "lldb/Core/UserSettingsController.h" #include "lldb/Target/ExecutionContextScope.h" #include "lldb/Target/RegisterCheckpoint.h" #include "lldb/Target/StackFrameList.h" +#include "lldb/Utility/StructuredData.h" #include "lldb/Utility/UserID.h" #include "lldb/lldb-private.h" Modified: vendor/lldb/dist/include/lldb/Target/ThreadPlanPython.h ============================================================================== --- vendor/lldb/dist/include/lldb/Target/ThreadPlanPython.h Sat Jul 1 13:24:50 2017 (r320542) +++ vendor/lldb/dist/include/lldb/Target/ThreadPlanPython.h Sat Jul 1 13:24:58 2017 (r320543) @@ -17,13 +17,13 @@ // Other libraries and framework includes // Project includes -#include "lldb/Core/StructuredData.h" #include "lldb/Target/Process.h" #include "lldb/Target/StopInfo.h" #include "lldb/Target/Target.h" #include "lldb/Target/Thread.h" #include "lldb/Target/ThreadPlan.h" #include "lldb/Target/ThreadPlanTracer.h" +#include "lldb/Utility/StructuredData.h" #include "lldb/Utility/UserID.h" #include "lldb/lldb-private.h" Modified: vendor/lldb/dist/include/lldb/Target/ThreadSpec.h ============================================================================== --- vendor/lldb/dist/include/lldb/Target/ThreadSpec.h Sat Jul 1 13:24:50 2017 (r320542) +++ vendor/lldb/dist/include/lldb/Target/ThreadSpec.h Sat Jul 1 13:24:58 2017 (r320543) @@ -10,13 +10,9 @@ #ifndef liblldb_ThreadSpec_h_ #define liblldb_ThreadSpec_h_ -// C Includes -// C++ Includes -#include - -// Other libraries and framework includes -// Project includes +#include "lldb/Utility/StructuredData.h" #include "lldb/lldb-private.h" +#include namespace lldb_private { Added: vendor/lldb/dist/include/lldb/Utility/Connection.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/lldb/dist/include/lldb/Utility/Connection.h Sat Jul 1 13:24:58 2017 (r320543) @@ -0,0 +1,212 @@ +//===-- Connection.h --------------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef liblldb_Connection_h_ +#define liblldb_Connection_h_ + +#include "lldb/lldb-defines.h" // for DISALLOW_COPY_AND_ASSIGN +#include "lldb/lldb-enumerations.h" // for ConnectionStatus +#include "lldb/lldb-forward.h" // for IOObjectSP + +#include "llvm/ADT/StringRef.h" // for StringRef + +#include // for micro +#include + +#include // for size_t + +namespace lldb_private { +class Status; +} +namespace lldb_private { +template class Timeout; +} + +namespace lldb_private { + +//---------------------------------------------------------------------- +/// @class Connection Connection.h "lldb/Utility/Connection.h" +/// @brief A communication connection class. +/// +/// A class that implements that actual communication functions for +/// connecting/disconnecting, reading/writing, and waiting for bytes +/// to become available from a two way communication connection. +/// +/// This class is designed to only do very simple communication +/// functions. Instances can be instantiated and given to a +/// Communication class to perform communications where clients can +/// listen for broadcasts, and perform other higher level communications. +//---------------------------------------------------------------------- +class Connection { +public: + //------------------------------------------------------------------ + /// Default constructor + //------------------------------------------------------------------ + Connection() = default; + + //------------------------------------------------------------------ + /// Virtual destructor since this class gets subclassed and handed + /// to a Communication object. + //------------------------------------------------------------------ + virtual ~Connection(); + + //------------------------------------------------------------------ + /// Connect using the connect string \a url. + /// + /// @param[in] url + /// A string that contains all information needed by the + /// subclass to connect to another client. + /// + /// @param[out] error_ptr + /// A pointer to an error object that should be given an + /// appropriate error value if this method returns false. This + /// value can be NULL if the error value should be ignored. + /// + /// @return + /// \b True if the connect succeeded, \b false otherwise. The + /// internal error object should be filled in with an + /// appropriate value based on the result of this function. + /// + /// @see Status& Communication::GetError (); + //------------------------------------------------------------------ + virtual lldb::ConnectionStatus Connect(llvm::StringRef url, + Status *error_ptr) = 0; + + //------------------------------------------------------------------ + /// Disconnect the communications connection if one is currently + /// connected. + /// + /// @param[out] error_ptr + /// A pointer to an error object that should be given an + /// appropriate error value if this method returns false. This + /// value can be NULL if the error value should be ignored. + /// + /// @return + /// \b True if the disconnect succeeded, \b false otherwise. The + /// internal error object should be filled in with an + /// appropriate value based on the result of this function. + /// + /// @see Status& Communication::GetError (); + //------------------------------------------------------------------ + virtual lldb::ConnectionStatus Disconnect(Status *error_ptr) = 0; + + //------------------------------------------------------------------ + /// Check if the connection is valid. + /// + /// @return + /// \b True if this object is currently connected, \b false + /// otherwise. + //------------------------------------------------------------------ + virtual bool IsConnected() const = 0; + + //------------------------------------------------------------------ + /// The read function that attempts to read from the connection. + /// + /// @param[in] dst + /// A destination buffer that must be at least \a dst_len bytes + /// long. + /// + /// @param[in] dst_len + /// The number of bytes to attempt to read, and also the max + /// number of bytes that can be placed into \a dst. + /// + /// @param[in] timeout + /// The number of microseconds to wait for the data. + /// + /// @param[out] status + /// On return, indicates whether the call was successful or terminated + /// due to some error condition. + /// + /// @param[out] error_ptr + /// A pointer to an error object that should be given an + /// appropriate error value if this method returns zero. This + /// value can be NULL if the error value should be ignored. + /// + /// @return + /// The number of bytes actually read. + /// + /// @see size_t Communication::Read (void *, size_t, uint32_t); + //------------------------------------------------------------------ + virtual size_t Read(void *dst, size_t dst_len, + const Timeout &timeout, + lldb::ConnectionStatus &status, Status *error_ptr) = 0; + + //------------------------------------------------------------------ + /// The actual write function that attempts to write to the + /// communications protocol. + /// + /// Subclasses must override this function. + /// + /// @param[in] dst + /// A desination buffer that must be at least \a dst_len bytes + /// long. + /// + /// @param[in] dst_len + /// The number of bytes to attempt to write, and also the + /// number of bytes are currently available in \a dst. + /// + /// @param[out] error_ptr + /// A pointer to an error object that should be given an + /// appropriate error value if this method returns zero. This + /// value can be NULL if the error value should be ignored. + /// + /// @return + /// The number of bytes actually Written. + //------------------------------------------------------------------ + virtual size_t Write(const void *dst, size_t dst_len, + lldb::ConnectionStatus &status, Status *error_ptr) = 0; + + //------------------------------------------------------------------ + /// Returns a URI that describes this connection object + /// + /// Subclasses may override this function. + /// + /// @return + /// Returns URI or an empty string if disconnecteds + //------------------------------------------------------------------ + virtual std::string GetURI() = 0; + + //------------------------------------------------------------------ + /// Interrupts an ongoing Read() operation. + /// + /// If there is an ongoing read operation in another thread, this operation + /// return with status == eConnectionStatusInterrupted. Note that if there + /// data waiting to be read and an interrupt request is issued, the Read() + /// function will return the data immediately without processing the + /// interrupt request (which will remain queued for the next Read() + /// operation). + /// + /// @return + /// Returns true is the interrupt request was successful. + //------------------------------------------------------------------ + virtual bool InterruptRead() = 0; + + //------------------------------------------------------------------ + /// Returns the underlying IOObject used by the Connection. + /// + /// The IOObject can be used to wait for data to become available + /// on the connection. If the Connection does not use IOObjects (and + /// hence does not support waiting) this function should return a + /// null pointer. + /// + /// @return + /// The underlying IOObject used for reading. + //------------------------------------------------------------------ + virtual lldb::IOObjectSP GetReadObject() { return lldb::IOObjectSP(); } + +private: + //------------------------------------------------------------------ + // For Connection only + //------------------------------------------------------------------ + DISALLOW_COPY_AND_ASSIGN(Connection); +}; + +} // namespace lldb_private + +#endif // liblldb_Connection_h_ Added: vendor/lldb/dist/include/lldb/Utility/IOObject.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/lldb/dist/include/lldb/Utility/IOObject.h Sat Jul 1 13:24:58 2017 (r320543) @@ -0,0 +1,56 @@ +//===-- IOObject.h ----------------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef liblldb_Host_Common_IOObject_h_ +#define liblldb_Host_Common_IOObject_h_ + +#include +#include +#include + +#include "lldb/lldb-private.h" + +namespace lldb_private { + +class IOObject { +public: + typedef enum { + eFDTypeFile, // Other FD requiring read/write + eFDTypeSocket, // Socket requiring send/recv + } FDType; + + // TODO: On Windows this should be a HANDLE, and wait should use + // WaitForMultipleObjects + typedef int WaitableHandle; + static const WaitableHandle kInvalidHandleValue; + + IOObject(FDType type, bool should_close) + : m_fd_type(type), m_should_close_fd(should_close) {} + virtual ~IOObject(); + + virtual Status Read(void *buf, size_t &num_bytes) = 0; + virtual Status Write(const void *buf, size_t &num_bytes) = 0; + virtual bool IsValid() const = 0; + virtual Status Close() = 0; + + FDType GetFdType() const { return m_fd_type; } + + virtual WaitableHandle GetWaitableHandle() = 0; + +protected: + FDType m_fd_type; + bool m_should_close_fd; // True if this class should close the file descriptor + // when it goes away. + +private: + DISALLOW_COPY_AND_ASSIGN(IOObject); +}; +} // namespace lldb_private + +#endif Modified: vendor/lldb/dist/include/lldb/Utility/JSON.h ============================================================================== --- vendor/lldb/dist/include/lldb/Utility/JSON.h Sat Jul 1 13:24:50 2017 (r320542) +++ vendor/lldb/dist/include/lldb/Utility/JSON.h Sat Jul 1 13:24:58 2017 (r320543) @@ -269,7 +269,7 @@ class JSONParser : public StringExtractor { (public) EndOfFile }; - JSONParser(const char *cstr); + JSONParser(llvm::StringRef data); int GetEscapedChar(bool &was_escaped); Added: vendor/lldb/dist/include/lldb/Utility/StructuredData.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/lldb/dist/include/lldb/Utility/StructuredData.h Sat Jul 1 13:24:58 2017 (r320543) @@ -0,0 +1,556 @@ +//===-- StructuredData.h ----------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef liblldb_StructuredData_h_ +#define liblldb_StructuredData_h_ + +#include "llvm/ADT/StringRef.h" + +#include "lldb/Utility/ConstString.h" +#include "lldb/Utility/FileSpec.h" // for FileSpec +#include "lldb/lldb-enumerations.h" // for StructuredDataType + +#include // for assert +#include // for size_t +#include // for uint64_t +#include +#include +#include +#include +#include // for move +#include +#include + +namespace lldb_private { +class Status; +} +namespace lldb_private { +class Stream; +} + +namespace lldb_private { + +//---------------------------------------------------------------------- +/// @class StructuredData StructuredData.h "lldb/Utility/StructuredData.h" +/// @brief A class which can hold structured data +/// +/// The StructuredData class is designed to hold the data from a JSON +/// or plist style file -- a serialized data structure with dictionaries +/// (maps, hashes), arrays, and concrete values like integers, floating +/// point numbers, strings, booleans. +/// +/// StructuredData does not presuppose any knowledge of the schema for +/// the data it is holding; it can parse JSON data, for instance, and +/// other parts of lldb can iterate through the parsed data set to find +/// keys and values that may be present. +//---------------------------------------------------------------------- + +class StructuredData { +public: + class Object; + class Array; + class Integer; + class Float; + class Boolean; + class String; + class Dictionary; + class Generic; + + typedef std::shared_ptr ObjectSP; + typedef std::shared_ptr ArraySP; + typedef std::shared_ptr IntegerSP; + typedef std::shared_ptr FloatSP; + typedef std::shared_ptr BooleanSP; + typedef std::shared_ptr StringSP; + typedef std::shared_ptr DictionarySP; + typedef std::shared_ptr GenericSP; + + class Object : public std::enable_shared_from_this { + public: + Object(lldb::StructuredDataType t = lldb::eStructuredDataTypeInvalid) + : m_type(t) {} + + virtual ~Object() = default; + + virtual bool IsValid() const { return true; } + + virtual void Clear() { m_type = lldb::eStructuredDataTypeInvalid; } + + lldb::StructuredDataType GetType() const { return m_type; } + + void SetType(lldb::StructuredDataType t) { m_type = t; } + + Array *GetAsArray() { + return ((m_type == lldb::eStructuredDataTypeArray) + ? static_cast(this) + : nullptr); + } + + Dictionary *GetAsDictionary() { + return ((m_type == lldb::eStructuredDataTypeDictionary) + ? static_cast(this) + : nullptr); + } + + Integer *GetAsInteger() { + return ((m_type == lldb::eStructuredDataTypeInteger) + ? static_cast(this) + : nullptr); + } + + uint64_t GetIntegerValue(uint64_t fail_value = 0) { + Integer *integer = GetAsInteger(); + return ((integer != nullptr) ? integer->GetValue() : fail_value); + } + + Float *GetAsFloat() { + return ((m_type == lldb::eStructuredDataTypeFloat) + ? static_cast(this) + : nullptr); + } + + double GetFloatValue(double fail_value = 0.0) { *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***