Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 18 Feb 2014 16:23:11 +0000 (UTC)
From:      Ed Maste <emaste@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org
Subject:   svn commit: r262182 - in vendor/lldb/dist: include/lldb include/lldb/API include/lldb/Breakpoint include/lldb/Core include/lldb/DataFormatters include/lldb/Expression include/lldb/Host include/lldb...
Message-ID:  <201402181623.s1IGNBg8034318@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: emaste
Date: Tue Feb 18 16:23:10 2014
New Revision: 262182
URL: http://svnweb.freebsd.org/changeset/base/262182

Log:
  Import lldb as of SVN r201577 (git 2bdc2f6)
  
  (A number of files not required for the FreeBSD build have been removed.)
  
  Sponsored by:	DARPA, AFRL

Added:
  vendor/lldb/dist/include/lldb/API/SBQueue.h   (contents, props changed)
  vendor/lldb/dist/include/lldb/API/SBQueueItem.h   (contents, props changed)
  vendor/lldb/dist/include/lldb/Core/IOHandler.h   (contents, props changed)
  vendor/lldb/dist/include/lldb/DataFormatters/FormattersContainer.h   (contents, props changed)
  vendor/lldb/dist/include/lldb/Host/Editline.h   (contents, props changed)
  vendor/lldb/dist/include/lldb/Host/HostGetOpt.h   (contents, props changed)
  vendor/lldb/dist/include/lldb/Target/Queue.h   (contents, props changed)
  vendor/lldb/dist/include/lldb/Target/QueueItem.h   (contents, props changed)
  vendor/lldb/dist/include/lldb/Target/QueueList.h   (contents, props changed)
  vendor/lldb/dist/include/lldb/Target/SectionLoadHistory.h   (contents, props changed)
  vendor/lldb/dist/source/API/SBQueue.cpp   (contents, props changed)
  vendor/lldb/dist/source/API/SBQueueItem.cpp   (contents, props changed)
  vendor/lldb/dist/source/Commands/CommandObjectGUI.cpp   (contents, props changed)
  vendor/lldb/dist/source/Commands/CommandObjectGUI.h   (contents, props changed)
  vendor/lldb/dist/source/Core/IOHandler.cpp   (contents, props changed)
  vendor/lldb/dist/source/Host/common/Editline.cpp   (contents, props changed)
  vendor/lldb/dist/source/Plugins/Process/FreeBSD/FreeBSDThread.cpp   (contents, props changed)
  vendor/lldb/dist/source/Plugins/Process/FreeBSD/FreeBSDThread.h   (contents, props changed)
  vendor/lldb/dist/source/Target/Queue.cpp   (contents, props changed)
  vendor/lldb/dist/source/Target/QueueItem.cpp   (contents, props changed)
  vendor/lldb/dist/source/Target/QueueList.cpp   (contents, props changed)
  vendor/lldb/dist/source/Target/SectionLoadHistory.cpp   (contents, props changed)
  vendor/lldb/dist/tools/lldb-platform/exports
Deleted:
  vendor/lldb/dist/include/lldb/API/SBInputReader.h
  vendor/lldb/dist/include/lldb/Core/InputReader.h
  vendor/lldb/dist/include/lldb/Core/InputReaderEZ.h
  vendor/lldb/dist/include/lldb/Core/InputReaderStack.h
  vendor/lldb/dist/include/lldb/DataFormatters/FormatNavigator.h
  vendor/lldb/dist/source/API/SBInputReader.cpp
  vendor/lldb/dist/source/Core/InputReader.cpp
  vendor/lldb/dist/source/Core/InputReaderEZ.cpp
  vendor/lldb/dist/source/Core/InputReaderStack.cpp
  vendor/lldb/dist/tools/driver/ELWrapper.cpp
  vendor/lldb/dist/tools/driver/ELWrapper.h
  vendor/lldb/dist/tools/driver/GetOptWrapper.cpp
  vendor/lldb/dist/tools/driver/GetOptWrapper.h
  vendor/lldb/dist/tools/driver/IOChannel.cpp
  vendor/lldb/dist/tools/driver/IOChannel.h
Modified:
  vendor/lldb/dist/include/lldb/API/LLDB.h
  vendor/lldb/dist/include/lldb/API/SBAddress.h
  vendor/lldb/dist/include/lldb/API/SBCommandInterpreter.h
  vendor/lldb/dist/include/lldb/API/SBDebugger.h
  vendor/lldb/dist/include/lldb/API/SBDefines.h
  vendor/lldb/dist/include/lldb/API/SBError.h
  vendor/lldb/dist/include/lldb/API/SBModule.h
  vendor/lldb/dist/include/lldb/API/SBProcess.h
  vendor/lldb/dist/include/lldb/API/SBTarget.h
  vendor/lldb/dist/include/lldb/API/SBThread.h
  vendor/lldb/dist/include/lldb/API/SBType.h
  vendor/lldb/dist/include/lldb/API/SBTypeFormat.h
  vendor/lldb/dist/include/lldb/Breakpoint/Breakpoint.h
  vendor/lldb/dist/include/lldb/Breakpoint/BreakpointLocation.h
  vendor/lldb/dist/include/lldb/Breakpoint/BreakpointLocationList.h
  vendor/lldb/dist/include/lldb/Core/ArchSpec.h
  vendor/lldb/dist/include/lldb/Core/Communication.h
  vendor/lldb/dist/include/lldb/Core/ConnectionFileDescriptor.h
  vendor/lldb/dist/include/lldb/Core/Debugger.h
  vendor/lldb/dist/include/lldb/Core/Disassembler.h
  vendor/lldb/dist/include/lldb/Core/MappedHash.h
  vendor/lldb/dist/include/lldb/Core/Module.h
  vendor/lldb/dist/include/lldb/Core/Opcode.h
  vendor/lldb/dist/include/lldb/Core/SourceManager.h
  vendor/lldb/dist/include/lldb/Core/StreamAsynchronousIO.h
  vendor/lldb/dist/include/lldb/Core/StringList.h
  vendor/lldb/dist/include/lldb/Core/ValueObject.h
  vendor/lldb/dist/include/lldb/Core/ValueObjectList.h
  vendor/lldb/dist/include/lldb/DataFormatters/CXXFormatterFunctions.h
  vendor/lldb/dist/include/lldb/DataFormatters/FormatManager.h
  vendor/lldb/dist/include/lldb/DataFormatters/TypeCategory.h
  vendor/lldb/dist/include/lldb/DataFormatters/TypeCategoryMap.h
  vendor/lldb/dist/include/lldb/DataFormatters/TypeFormat.h
  vendor/lldb/dist/include/lldb/DataFormatters/TypeSynthetic.h
  vendor/lldb/dist/include/lldb/DataFormatters/ValueObjectPrinter.h
  vendor/lldb/dist/include/lldb/Expression/ClangFunction.h
  vendor/lldb/dist/include/lldb/Expression/IRForTarget.h
  vendor/lldb/dist/include/lldb/Host/File.h
  vendor/lldb/dist/include/lldb/Host/FileSpec.h
  vendor/lldb/dist/include/lldb/Host/Host.h
  vendor/lldb/dist/include/lldb/Host/SocketAddress.h
  vendor/lldb/dist/include/lldb/Interpreter/CommandInterpreter.h
  vendor/lldb/dist/include/lldb/Interpreter/PythonDataObjects.h
  vendor/lldb/dist/include/lldb/Interpreter/ScriptInterpreter.h
  vendor/lldb/dist/include/lldb/Interpreter/ScriptInterpreterPython.h
  vendor/lldb/dist/include/lldb/Symbol/FuncUnwinders.h
  vendor/lldb/dist/include/lldb/Symbol/Function.h
  vendor/lldb/dist/include/lldb/Symbol/ObjectFile.h
  vendor/lldb/dist/include/lldb/Symbol/Symbol.h
  vendor/lldb/dist/include/lldb/Symbol/SymbolContext.h
  vendor/lldb/dist/include/lldb/Symbol/Type.h
  vendor/lldb/dist/include/lldb/Symbol/UnwindTable.h
  vendor/lldb/dist/include/lldb/Target/DynamicLoader.h
  vendor/lldb/dist/include/lldb/Target/ExecutionContext.h
  vendor/lldb/dist/include/lldb/Target/Platform.h
  vendor/lldb/dist/include/lldb/Target/Process.h
  vendor/lldb/dist/include/lldb/Target/SectionLoadList.h
  vendor/lldb/dist/include/lldb/Target/SystemRuntime.h
  vendor/lldb/dist/include/lldb/Target/Target.h
  vendor/lldb/dist/include/lldb/Target/Thread.h
  vendor/lldb/dist/include/lldb/Target/ThreadList.h
  vendor/lldb/dist/include/lldb/Target/ThreadPlanStepInRange.h
  vendor/lldb/dist/include/lldb/Target/UnwindAssembly.h
  vendor/lldb/dist/include/lldb/Utility/Iterable.h
  vendor/lldb/dist/include/lldb/lldb-enumerations.h
  vendor/lldb/dist/include/lldb/lldb-forward.h
  vendor/lldb/dist/include/lldb/lldb-private-enumerations.h
  vendor/lldb/dist/include/lldb/lldb-private-log.h
  vendor/lldb/dist/source/API/SBBreakpoint.cpp
  vendor/lldb/dist/source/API/SBCommandInterpreter.cpp
  vendor/lldb/dist/source/API/SBDebugger.cpp
  vendor/lldb/dist/source/API/SBFrame.cpp
  vendor/lldb/dist/source/API/SBModule.cpp
  vendor/lldb/dist/source/API/SBProcess.cpp
  vendor/lldb/dist/source/API/SBTarget.cpp
  vendor/lldb/dist/source/API/SBType.cpp
  vendor/lldb/dist/source/API/SBTypeCategory.cpp
  vendor/lldb/dist/source/API/SBTypeFormat.cpp
  vendor/lldb/dist/source/API/SBValue.cpp
  vendor/lldb/dist/source/Breakpoint/Breakpoint.cpp
  vendor/lldb/dist/source/Breakpoint/BreakpointLocation.cpp
  vendor/lldb/dist/source/Breakpoint/BreakpointLocationList.cpp
  vendor/lldb/dist/source/Breakpoint/BreakpointResolverName.cpp
  vendor/lldb/dist/source/Commands/CommandObjectBreakpointCommand.cpp
  vendor/lldb/dist/source/Commands/CommandObjectBreakpointCommand.h
  vendor/lldb/dist/source/Commands/CommandObjectCommands.cpp
  vendor/lldb/dist/source/Commands/CommandObjectDisassemble.cpp
  vendor/lldb/dist/source/Commands/CommandObjectExpression.cpp
  vendor/lldb/dist/source/Commands/CommandObjectExpression.h
  vendor/lldb/dist/source/Commands/CommandObjectMultiword.cpp
  vendor/lldb/dist/source/Commands/CommandObjectProcess.cpp
  vendor/lldb/dist/source/Commands/CommandObjectQuit.cpp
  vendor/lldb/dist/source/Commands/CommandObjectRegister.cpp
  vendor/lldb/dist/source/Commands/CommandObjectSource.cpp
  vendor/lldb/dist/source/Commands/CommandObjectTarget.cpp
  vendor/lldb/dist/source/Commands/CommandObjectType.cpp
  vendor/lldb/dist/source/Commands/CommandObjectWatchpointCommand.cpp
  vendor/lldb/dist/source/Commands/CommandObjectWatchpointCommand.h
  vendor/lldb/dist/source/Core/Address.cpp
  vendor/lldb/dist/source/Core/ArchSpec.cpp
  vendor/lldb/dist/source/Core/Broadcaster.cpp
  vendor/lldb/dist/source/Core/Communication.cpp
  vendor/lldb/dist/source/Core/ConnectionFileDescriptor.cpp
  vendor/lldb/dist/source/Core/DataExtractor.cpp
  vendor/lldb/dist/source/Core/Debugger.cpp
  vendor/lldb/dist/source/Core/Disassembler.cpp
  vendor/lldb/dist/source/Core/DynamicLoader.cpp
  vendor/lldb/dist/source/Core/Log.cpp
  vendor/lldb/dist/source/Core/Mangled.cpp
  vendor/lldb/dist/source/Core/Module.cpp
  vendor/lldb/dist/source/Core/Opcode.cpp
  vendor/lldb/dist/source/Core/Section.cpp
  vendor/lldb/dist/source/Core/SourceManager.cpp
  vendor/lldb/dist/source/Core/StreamAsynchronousIO.cpp
  vendor/lldb/dist/source/Core/StringList.cpp
  vendor/lldb/dist/source/Core/Value.cpp
  vendor/lldb/dist/source/Core/ValueObject.cpp
  vendor/lldb/dist/source/Core/ValueObjectChild.cpp
  vendor/lldb/dist/source/Core/ValueObjectVariable.cpp
  vendor/lldb/dist/source/DataFormatters/DataVisualization.cpp
  vendor/lldb/dist/source/DataFormatters/FormatManager.cpp
  vendor/lldb/dist/source/DataFormatters/LibCxx.cpp
  vendor/lldb/dist/source/DataFormatters/LibCxxUnorderedMap.cpp
  vendor/lldb/dist/source/DataFormatters/TypeCategory.cpp
  vendor/lldb/dist/source/DataFormatters/TypeFormat.cpp
  vendor/lldb/dist/source/DataFormatters/ValueObjectPrinter.cpp
  vendor/lldb/dist/source/Expression/ClangASTSource.cpp
  vendor/lldb/dist/source/Expression/ClangExpressionDeclMap.cpp
  vendor/lldb/dist/source/Expression/ClangExpressionParser.cpp
  vendor/lldb/dist/source/Expression/ClangUserExpression.cpp
  vendor/lldb/dist/source/Expression/DWARFExpression.cpp
  vendor/lldb/dist/source/Expression/IRDynamicChecks.cpp
  vendor/lldb/dist/source/Expression/IRExecutionUnit.cpp
  vendor/lldb/dist/source/Expression/IRForTarget.cpp
  vendor/lldb/dist/source/Expression/Materializer.cpp
  vendor/lldb/dist/source/Host/common/File.cpp
  vendor/lldb/dist/source/Host/common/Host.cpp
  vendor/lldb/dist/source/Host/common/OptionParser.cpp
  vendor/lldb/dist/source/Host/common/SocketAddress.cpp
  vendor/lldb/dist/source/Interpreter/CommandInterpreter.cpp
  vendor/lldb/dist/source/Interpreter/CommandObject.cpp
  vendor/lldb/dist/source/Interpreter/Options.cpp
  vendor/lldb/dist/source/Interpreter/PythonDataObjects.cpp
  vendor/lldb/dist/source/Interpreter/ScriptInterpreterNone.cpp
  vendor/lldb/dist/source/Interpreter/ScriptInterpreterPython.cpp
  vendor/lldb/dist/source/Interpreter/embedded_interpreter.py
  vendor/lldb/dist/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp
  vendor/lldb/dist/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp
  vendor/lldb/dist/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.h
  vendor/lldb/dist/source/Plugins/DynamicLoader/Static/DynamicLoaderStatic.cpp
  vendor/lldb/dist/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp
  vendor/lldb/dist/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/ItaniumABILanguageRuntime.cpp
  vendor/lldb/dist/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
  vendor/lldb/dist/source/Plugins/ObjectFile/ELF/ObjectFileELF.h
  vendor/lldb/dist/source/Plugins/OperatingSystem/Python/OperatingSystemPython.cpp
  vendor/lldb/dist/source/Plugins/OperatingSystem/Python/OperatingSystemPython.h
  vendor/lldb/dist/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.cpp
  vendor/lldb/dist/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.h
  vendor/lldb/dist/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp
  vendor/lldb/dist/source/Plugins/Platform/POSIX/PlatformPOSIX.h
  vendor/lldb/dist/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp
  vendor/lldb/dist/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.h
  vendor/lldb/dist/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp
  vendor/lldb/dist/source/Plugins/Process/FreeBSD/ProcessFreeBSD.h
  vendor/lldb/dist/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp
  vendor/lldb/dist/source/Plugins/Process/FreeBSD/ProcessMonitor.h
  vendor/lldb/dist/source/Plugins/Process/POSIX/POSIXThread.cpp
  vendor/lldb/dist/source/Plugins/Process/POSIX/ProcessPOSIX.cpp
  vendor/lldb/dist/source/Plugins/Process/POSIX/ProcessPOSIX.h
  vendor/lldb/dist/source/Plugins/Process/Utility/HistoryThread.cpp
  vendor/lldb/dist/source/Plugins/Process/Utility/HistoryThread.h
  vendor/lldb/dist/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp
  vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextLLDB.cpp
  vendor/lldb/dist/source/Plugins/Process/Utility/RegisterContextLLDB.h
  vendor/lldb/dist/source/Plugins/Process/Utility/UnwindLLDB.cpp
  vendor/lldb/dist/source/Plugins/Process/Utility/UnwindLLDB.h
  vendor/lldb/dist/source/Plugins/Process/elf-core/ProcessElfCore.cpp
  vendor/lldb/dist/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_x86_64.cpp
  vendor/lldb/dist/source/Plugins/Process/elf-core/ThreadElfCore.cpp
  vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp
  vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h
  vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
  vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h
  vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.cpp
  vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.h
  vendor/lldb/dist/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.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.cpp
  vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/DWARFFormValue.h
  vendor/lldb/dist/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
  vendor/lldb/dist/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp
  vendor/lldb/dist/source/Symbol/ClangASTContext.cpp
  vendor/lldb/dist/source/Symbol/ClangASTType.cpp
  vendor/lldb/dist/source/Symbol/FuncUnwinders.cpp
  vendor/lldb/dist/source/Symbol/Function.cpp
  vendor/lldb/dist/source/Symbol/Symbol.cpp
  vendor/lldb/dist/source/Symbol/Type.cpp
  vendor/lldb/dist/source/Symbol/Variable.cpp
  vendor/lldb/dist/source/Target/ExecutionContext.cpp
  vendor/lldb/dist/source/Target/LanguageRuntime.cpp
  vendor/lldb/dist/source/Target/Platform.cpp
  vendor/lldb/dist/source/Target/Process.cpp
  vendor/lldb/dist/source/Target/SectionLoadList.cpp
  vendor/lldb/dist/source/Target/StopInfo.cpp
  vendor/lldb/dist/source/Target/SystemRuntime.cpp
  vendor/lldb/dist/source/Target/Target.cpp
  vendor/lldb/dist/source/Target/Thread.cpp
  vendor/lldb/dist/source/Target/ThreadList.cpp
  vendor/lldb/dist/source/Target/ThreadPlanStepInRange.cpp
  vendor/lldb/dist/source/Target/ThreadPlanStepThrough.cpp
  vendor/lldb/dist/source/Target/ThreadPlanTracer.cpp
  vendor/lldb/dist/source/Target/UnwindAssembly.cpp
  vendor/lldb/dist/source/Utility/StringExtractorGDBRemote.cpp
  vendor/lldb/dist/source/Utility/StringExtractorGDBRemote.h
  vendor/lldb/dist/source/lldb-log.cpp
  vendor/lldb/dist/source/lldb.cpp
  vendor/lldb/dist/tools/driver/Driver.cpp
  vendor/lldb/dist/tools/driver/Driver.h
  vendor/lldb/dist/tools/driver/Platform.h
  vendor/lldb/dist/tools/lldb-platform/lldb-platform.cpp

Modified: vendor/lldb/dist/include/lldb/API/LLDB.h
==============================================================================
--- vendor/lldb/dist/include/lldb/API/LLDB.h	Tue Feb 18 15:45:15 2014	(r262181)
+++ vendor/lldb/dist/include/lldb/API/LLDB.h	Tue Feb 18 16:23:10 2014	(r262182)
@@ -33,13 +33,14 @@
 #include "lldb/API/SBFrame.h"
 #include "lldb/API/SBFunction.h"
 #include "lldb/API/SBHostOS.h"
-#include "lldb/API/SBInputReader.h"
 #include "lldb/API/SBInstruction.h"
 #include "lldb/API/SBInstructionList.h"
 #include "lldb/API/SBLineEntry.h"
 #include "lldb/API/SBListener.h"
 #include "lldb/API/SBModule.h"
 #include "lldb/API/SBProcess.h"
+#include "lldb/API/SBQueue.h"
+#include "lldb/API/SBQueueItem.h"
 #include "lldb/API/SBSourceManager.h"
 #include "lldb/API/SBStream.h"
 #include "lldb/API/SBStringList.h"

Modified: vendor/lldb/dist/include/lldb/API/SBAddress.h
==============================================================================
--- vendor/lldb/dist/include/lldb/API/SBAddress.h	Tue Feb 18 15:45:15 2014	(r262181)
+++ vendor/lldb/dist/include/lldb/API/SBAddress.h	Tue Feb 18 16:23:10 2014	(r262182)
@@ -118,6 +118,7 @@ protected:
     friend class SBTarget;
     friend class SBThread;
     friend class SBValue;
+    friend class SBQueueItem;
 
     lldb_private::Address *
     operator->();

Modified: vendor/lldb/dist/include/lldb/API/SBCommandInterpreter.h
==============================================================================
--- vendor/lldb/dist/include/lldb/API/SBCommandInterpreter.h	Tue Feb 18 15:45:15 2014	(r262181)
+++ vendor/lldb/dist/include/lldb/API/SBCommandInterpreter.h	Tue Feb 18 16:23:10 2014	(r262182)
@@ -122,6 +122,36 @@ public:
     
     SBCommandInterpreter (lldb_private::CommandInterpreter *interpreter_ptr = NULL);   // Access using SBDebugger::GetCommandInterpreter();
     
+    //----------------------------------------------------------------------
+    /// Return true if the command interpreter is the active IO handler.
+    ///
+    /// This indicates that any input coming into the debugger handles will
+    /// go to the command interpreter and will result in LLDB command line
+    /// commands being executed.
+    //----------------------------------------------------------------------
+    bool
+    IsActive ();
+    
+    //----------------------------------------------------------------------
+    /// Get the string that needs to be written to the debugger stdin file
+    /// handle when a control character is typed.
+    ///
+    /// Some GUI programs will intercept "control + char" sequences and want
+    /// to have them do what normally would happen when using a real
+    /// terminal, so this function allows GUI programs to emulate this
+    /// functionality.
+    ///
+    /// @param[in] ch
+    ///     The character that was typed along with the control key
+    ///
+    /// @return
+    ///     The string that should be written into the file handle that is
+    ///     feeding the input stream for the debugger, or NULL if there is
+    ///     no string for this control key.
+    //----------------------------------------------------------------------
+    const char *
+    GetIOHandlerControlSequence(char ch);
+
 protected:
 
     lldb_private::CommandInterpreter &

Modified: vendor/lldb/dist/include/lldb/API/SBDebugger.h
==============================================================================
--- vendor/lldb/dist/include/lldb/API/SBDebugger.h	Tue Feb 18 15:45:15 2014	(r262181)
+++ vendor/lldb/dist/include/lldb/API/SBDebugger.h	Tue Feb 18 16:23:10 2014	(r262182)
@@ -17,6 +17,16 @@
 
 namespace lldb {
 
+    
+class SBInputReader
+{
+public:
+    SBInputReader();
+    ~SBInputReader();
+    SBError Initialize(lldb::SBDebugger&, unsigned long (*)(void*, lldb::SBInputReader*, lldb::InputReaderAction, char const*, unsigned long), void*, lldb::InputReaderGranularity, char const*, char const*, bool);
+    void SetIsDone(bool);
+    bool IsActive() const;
+};
 class SBDebugger
 {
 public:
@@ -231,12 +241,6 @@ public:
     void
     PushInputReader (lldb::SBInputReader &reader);
 
-    void
-    NotifyTopInputReader (lldb::InputReaderAction notification);
-
-    bool
-    InputReaderIsTopReader (const lldb::SBInputReader &reader);
-
     const char *
     GetInstanceName  ();
 
@@ -313,6 +317,10 @@ public:
     GetSyntheticForType (SBTypeNameSpecifier);
 #endif
 
+    void
+    RunCommandInterpreter (bool auto_handle_events,
+                           bool spawn_thread);
+
 private:
 
     friend class SBCommandInterpreter;

Modified: vendor/lldb/dist/include/lldb/API/SBDefines.h
==============================================================================
--- vendor/lldb/dist/include/lldb/API/SBDefines.h	Tue Feb 18 15:45:15 2014	(r262181)
+++ vendor/lldb/dist/include/lldb/API/SBDefines.h	Tue Feb 18 16:23:10 2014	(r262182)
@@ -48,7 +48,6 @@ class SBFileSpecList;
 class SBFrame;
 class SBFunction;
 class SBHostOS;
-class SBInputReader;
 class SBInstruction;
 class SBInstructionList;
 class SBLineEntry;

Modified: vendor/lldb/dist/include/lldb/API/SBError.h
==============================================================================
--- vendor/lldb/dist/include/lldb/API/SBError.h	Tue Feb 18 15:45:15 2014	(r262181)
+++ vendor/lldb/dist/include/lldb/API/SBError.h	Tue Feb 18 16:23:10 2014	(r262182)
@@ -71,7 +71,6 @@ protected:
     friend class SBDebugger;
     friend class SBCommunication;
     friend class SBHostOS;
-    friend class SBInputReader;
     friend class SBPlatform;
     friend class SBProcess;
     friend class SBThread;

Modified: vendor/lldb/dist/include/lldb/API/SBModule.h
==============================================================================
--- vendor/lldb/dist/include/lldb/API/SBModule.h	Tue Feb 18 15:45:15 2014	(r262181)
+++ vendor/lldb/dist/include/lldb/API/SBModule.h	Tue Feb 18 16:23:10 2014	(r262182)
@@ -235,6 +235,25 @@ public:
     lldb::SBTypeList
     FindTypes (const char* type);
     
+    //------------------------------------------------------------------
+    /// Get a type using its type ID.
+    ///
+    /// Each symbol file reader will assign different user IDs to their
+    /// types, but it is sometimes useful when debugging type issues to
+    /// be able to grab a type using its type ID.
+    ///
+    /// For DWARF debug info, the type ID is the DIE offset.
+    ///
+    /// @param[in] uid
+    ///     The type user ID.
+    ///
+    /// @return
+    ///     An SBType for the given type ID, or an empty SBType if the
+    ///     type was not found.
+    //------------------------------------------------------------------
+    lldb::SBType
+    GetTypeByID (lldb::user_id_t uid);
+
     lldb::SBType
     GetBasicType(lldb::BasicType type);
 

Modified: vendor/lldb/dist/include/lldb/API/SBProcess.h
==============================================================================
--- vendor/lldb/dist/include/lldb/API/SBProcess.h	Tue Feb 18 15:45:15 2014	(r262181)
+++ vendor/lldb/dist/include/lldb/API/SBProcess.h	Tue Feb 18 16:23:10 2014	(r262182)
@@ -13,6 +13,7 @@
 #include "lldb/API/SBDefines.h"
 #include "lldb/API/SBError.h"
 #include "lldb/API/SBTarget.h"
+#include "lldb/API/SBQueue.h"
 #include <stdio.h>
 
 namespace lldb {
@@ -142,6 +143,15 @@ public:
     SetSelectedThreadByIndexID (uint32_t index_id);
 
     //------------------------------------------------------------------
+    // Queue related functions
+    //------------------------------------------------------------------
+    uint32_t
+    GetNumQueues ();
+
+    lldb::SBQueue
+    GetQueueAtIndex (size_t index);
+
+    //------------------------------------------------------------------
     // Stepping related functions
     //------------------------------------------------------------------
 
@@ -312,6 +322,7 @@ protected:
     friend class SBTarget;
     friend class SBThread;
     friend class SBValue;
+    friend class lldb_private::QueueImpl;
 
     lldb::ProcessSP
     GetSP() const;

Added: vendor/lldb/dist/include/lldb/API/SBQueue.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ vendor/lldb/dist/include/lldb/API/SBQueue.h	Tue Feb 18 16:23:10 2014	(r262182)
@@ -0,0 +1,83 @@
+//===-- SBQueue.h -----------------------------------------------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLDB_SBQueue_h_
+#define LLDB_SBQueue_h_
+
+#include <vector>
+
+#include "lldb/lldb-forward.h"
+#include "lldb/API/SBDefines.h"
+#include "lldb/API/SBQueueItem.h"
+
+namespace lldb {
+
+class SBQueue
+{
+public:
+    SBQueue ();
+
+    SBQueue (const QueueSP& queue_sp);
+    
+    SBQueue (const SBQueue& rhs);
+
+    const SBQueue &
+    operator= (const lldb::SBQueue& rhs);
+
+   ~SBQueue();
+
+    bool
+    IsValid() const;
+
+    void
+    Clear ();
+
+    lldb::SBProcess
+    GetProcess ();
+
+    lldb::queue_id_t
+    GetQueueID () const;
+
+    const char *
+    GetName () const;
+
+    uint32_t
+    GetIndexID () const;
+
+    uint32_t
+    GetNumThreads ();
+
+    lldb::SBThread
+    GetThreadAtIndex (uint32_t);
+
+    uint32_t
+    GetNumPendingItems ();
+
+    lldb::SBQueueItem
+    GetPendingItemAtIndex (uint32_t);
+
+protected:
+    friend class SBProcess;
+
+    void
+    SetQueue (const lldb::QueueSP& queue_sp);
+
+    void
+    FetchThreads ();
+
+    void
+    FetchItems ();
+
+private:
+    std::shared_ptr<lldb_private::QueueImpl> m_opaque_sp;
+};
+
+} // namespace lldb
+
+#endif  // LLDB_SBQueue_h_

Added: vendor/lldb/dist/include/lldb/API/SBQueueItem.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ vendor/lldb/dist/include/lldb/API/SBQueueItem.h	Tue Feb 18 16:23:10 2014	(r262182)
@@ -0,0 +1,58 @@
+//===-- SBQueueItem.h -------------------------------------------*- C++ -*-===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLDB_SBQueueItem_h_
+#define LLDB_SBQueueItem_h_
+
+#include "lldb/API/SBDefines.h"
+#include "lldb/API/SBAddress.h"
+#include "lldb/API/SBThread.h"
+
+namespace lldb {
+
+class SBQueueItem
+{
+public:
+    SBQueueItem ();
+
+    SBQueueItem (const lldb::QueueItemSP& queue_item_sp);
+    
+   ~SBQueueItem();
+
+    bool
+    IsValid() const;
+
+    void
+    Clear ();
+
+    lldb::QueueItemKind
+    GetKind () const;
+
+    void
+    SetKind (lldb::QueueItemKind kind);
+
+    lldb::SBAddress
+    GetAddress () const;
+
+    void
+    SetAddress (lldb::SBAddress addr);
+
+    void
+    SetQueueItem (const lldb::QueueItemSP& queue_item_sp);
+
+    SBThread
+    GetExtendedBacktraceThread (const char *type);
+
+private:
+    lldb::QueueItemSP           m_queue_item_sp;
+};
+
+} // namespace lldb
+
+#endif  // LLDB_SBQueueItem_h_

Modified: vendor/lldb/dist/include/lldb/API/SBTarget.h
==============================================================================
--- vendor/lldb/dist/include/lldb/API/SBTarget.h	Tue Feb 18 15:45:15 2014	(r262181)
+++ vendor/lldb/dist/include/lldb/API/SBTarget.h	Tue Feb 18 16:23:10 2014	(r262182)
@@ -646,9 +646,47 @@ public:
     void
     Clear ();
 
+    //------------------------------------------------------------------
+    /// Resolve a current load address into a section offset address.
+    ///
+    /// @param[in] vm_addr
+    ///     A virtual address from the current process state that is to
+    ///     be translated into a section offset address.
+    ///
+    /// @return
+    ///     An SBAddress which will be valid if \a vm_addr was
+    ///     successfully resolved into a section offset address, or an
+    ///     invalid SBAddress if \a vm_addr doesn't resolve to a section
+    ///     in a module.
+    //------------------------------------------------------------------
     lldb::SBAddress
     ResolveLoadAddress (lldb::addr_t vm_addr);
 
+    //------------------------------------------------------------------
+    /// Resolve a current load address into a section offset address
+    /// using the process stop ID to identify a time in the past.
+    ///
+    /// @param[in] stop_id
+    ///     Each time a process stops, the process stop ID integer gets
+    ///     incremented. These stop IDs are used to identify past times
+    ///     and can be used in history objects as a cheap way to store
+    ///     the time at which the sample was taken. Specifying
+    ///     UINT32_MAX will always resolve the address using the
+    ///     currently loaded sections.
+    ///
+    /// @param[in] vm_addr
+    ///     A virtual address from the current process state that is to
+    ///     be translated into a section offset address.
+    ///
+    /// @return
+    ///     An SBAddress which will be valid if \a vm_addr was
+    ///     successfully resolved into a section offset address, or an
+    ///     invalid SBAddress if \a vm_addr doesn't resolve to a section
+    ///     in a module.
+    //------------------------------------------------------------------
+    lldb::SBAddress
+    ResolvePastLoadAddress (uint32_t stop_id, lldb::addr_t vm_addr);
+
     SBSymbolContext
     ResolveSymbolContextForAddress (const SBAddress& addr, 
                                     uint32_t resolve_scope);

Modified: vendor/lldb/dist/include/lldb/API/SBThread.h
==============================================================================
--- vendor/lldb/dist/include/lldb/API/SBThread.h	Tue Feb 18 15:45:15 2014	(r262181)
+++ vendor/lldb/dist/include/lldb/API/SBThread.h	Tue Feb 18 16:23:10 2014	(r262182)
@@ -214,6 +214,8 @@ protected:
     friend class SBProcess;
     friend class SBDebugger;
     friend class SBValue;
+    friend class lldb_private::QueueImpl;
+    friend class SBQueueItem;
 
     void
     SetThread (const lldb::ThreadSP& lldb_object_sp);

Modified: vendor/lldb/dist/include/lldb/API/SBType.h
==============================================================================
--- vendor/lldb/dist/include/lldb/API/SBType.h	Tue Feb 18 15:45:15 2014	(r262181)
+++ vendor/lldb/dist/include/lldb/API/SBType.h	Tue Feb 18 16:23:10 2014	(r262182)
@@ -106,6 +106,9 @@ public:
     GetReferenceType();
     
     lldb::SBType
+    GetTypedefedType();
+
+    lldb::SBType
     GetDereferencedType();
 
     lldb::SBType

Modified: vendor/lldb/dist/include/lldb/API/SBTypeFormat.h
==============================================================================
--- vendor/lldb/dist/include/lldb/API/SBTypeFormat.h	Tue Feb 18 15:45:15 2014	(r262181)
+++ vendor/lldb/dist/include/lldb/API/SBTypeFormat.h	Tue Feb 18 16:23:10 2014	(r262182)
@@ -22,6 +22,9 @@ public:
     
     SBTypeFormat (lldb::Format format,
                   uint32_t options = 0); // see lldb::eTypeOption values
+
+    SBTypeFormat (const char* type,
+                  uint32_t options = 0); // see lldb::eTypeOption values
     
     SBTypeFormat (const lldb::SBTypeFormat &rhs);
     
@@ -33,6 +36,9 @@ public:
     lldb::Format
     GetFormat ();
     
+    const char*
+    GetTypeName ();
+    
     uint32_t
     GetOptions();
     
@@ -40,6 +46,9 @@ public:
     SetFormat (lldb::Format);
     
     void
+    SetTypeName (const char*);
+    
+    void
     SetOptions (uint32_t);
     
     bool
@@ -73,8 +82,15 @@ protected:
     
     SBTypeFormat (const lldb::TypeFormatImplSP &);
     
+    enum class Type
+    {
+        eTypeKeepSame,
+        eTypeFormat,
+        eTypeEnum
+    };
+    
     bool
-    CopyOnWrite_Impl();
+    CopyOnWrite_Impl(Type);
     
 };
 

Modified: vendor/lldb/dist/include/lldb/Breakpoint/Breakpoint.h
==============================================================================
--- vendor/lldb/dist/include/lldb/Breakpoint/Breakpoint.h	Tue Feb 18 15:45:15 2014	(r262181)
+++ vendor/lldb/dist/include/lldb/Breakpoint/Breakpoint.h	Tue Feb 18 16:23:10 2014	(r262182)
@@ -612,12 +612,30 @@ protected:
     /// Only the Target can make a breakpoint, and it owns the breakpoint lifespans.
     /// The constructor takes a filter and a resolver.  Up in Target there are convenience
     /// variants that make breakpoints for some common cases.
+    ///
+    /// @param[in] target
+    ///    The target in which the breakpoint will be set.
+    ///
+    /// @param[in] filter_sp
+    ///    Shared pointer to the search filter that restricts the search domain of the breakpoint.
+    ///
+    /// @param[in] resolver_sp
+    ///    Shared pointer to the resolver object that will determine breakpoint matches.
+    ///
+    /// @param hardware
+    ///    If true, request a hardware breakpoint to be used to implement the breakpoint locations.
+    ///
+    /// @param resolve_indirect_symbols
+    ///    If true, and the address of a given breakpoint location in this breakpoint is set on an
+    ///    indirect symbol (i.e. Symbol::IsIndirect returns true) then the actual breakpoint site will
+    ///    be set on the target of the indirect symbol.
     //------------------------------------------------------------------
     // This is the generic constructor
     Breakpoint(Target &target,
                lldb::SearchFilterSP &filter_sp,
                lldb::BreakpointResolverSP &resolver_sp,
-               bool hardware);
+               bool hardware,
+               bool resolve_indirect_symbols = true);
     
     friend class BreakpointLocation;  // To call the following two when determining whether to stop.
 
@@ -643,6 +661,7 @@ private:
     BreakpointOptions m_options;              // Settable breakpoint options
     BreakpointLocationList m_locations;       // The list of locations currently found for this breakpoint.
     std::string m_kind_description;
+    bool m_resolve_indirect_symbols;
     
     void
     SendBreakpointChangedEvent (lldb::BreakpointEventType eventKind);

Modified: vendor/lldb/dist/include/lldb/Breakpoint/BreakpointLocation.h
==============================================================================
--- vendor/lldb/dist/include/lldb/Breakpoint/BreakpointLocation.h	Tue Feb 18 15:45:15 2014	(r262181)
+++ vendor/lldb/dist/include/lldb/Breakpoint/BreakpointLocation.h	Tue Feb 18 16:23:10 2014	(r262182)
@@ -321,7 +321,59 @@ public:
     //------------------------------------------------------------------
     bool
     InvokeCallback (StoppointCallbackContext *context);
+    
+    //------------------------------------------------------------------
+    /// Returns whether we should resolve Indirect functions in setting the breakpoint site
+    /// for this location.
+    ///
+    /// @return
+    ///     \b true if the breakpoint SITE for this location should be set on the
+    ///     resolved location for Indirect functions.
+    //------------------------------------------------------------------
+    bool
+    ShouldResolveIndirectFunctions ()
+    {
+        return m_should_resolve_indirect_functions;
+    }
 
+    //------------------------------------------------------------------
+    /// Returns whether the address set in the breakpoint site for this location was found by resolving
+    /// an indirect symbol.
+    ///
+    /// @return
+    ///     \b true or \b false as given in the description above.
+    //------------------------------------------------------------------
+    bool
+    IsIndirect ()
+    {
+        return m_is_indirect;
+    }
+    
+    void
+    SetIsIndirect (bool is_indirect)
+    {
+        m_is_indirect = is_indirect;
+    }
+    
+    //------------------------------------------------------------------
+    /// Returns whether the address set in the breakpoint location was re-routed to the target of a
+    /// re-exported symbol.
+    ///
+    /// @return
+    ///     \b true or \b false as given in the description above.
+    //------------------------------------------------------------------
+    bool
+    IsReExported ()
+    {
+        return m_is_reexported;
+    }
+    
+    void
+    SetIsReExported (bool is_reexported)
+    {
+        m_is_reexported = is_reexported;
+    }
+    
 protected:
     friend class BreakpointLocationList;
     friend class Process;
@@ -375,12 +427,16 @@ private:
                         Breakpoint &owner,
                         const Address &addr,
                         lldb::tid_t tid,
-                        bool hardware);
-
+                        bool hardware,
+                        bool check_for_resolver = true);
+    
     //------------------------------------------------------------------
     // Data members:
     //------------------------------------------------------------------
     bool m_being_created;
+    bool m_should_resolve_indirect_functions;
+    bool m_is_reexported;
+    bool m_is_indirect;
     Address m_address; ///< The address defining this location.
     Breakpoint &m_owner; ///< The breakpoint that produced this object.
     std::unique_ptr<BreakpointOptions> m_options_ap; ///< Breakpoint options pointer, NULL if we're using our breakpoint's options.
@@ -390,6 +446,12 @@ private:
     size_t m_condition_hash; ///< For testing whether the condition source code changed.
 
     void
+    SetShouldResolveIndirectFunctions (bool do_resolve)
+    {
+        m_should_resolve_indirect_functions = do_resolve;
+    }
+    
+    void
     SendBreakpointLocationChangedEvent (lldb::BreakpointEventType eventKind);
     
     DISALLOW_COPY_AND_ASSIGN (BreakpointLocation);

Modified: vendor/lldb/dist/include/lldb/Breakpoint/BreakpointLocationList.h
==============================================================================
--- vendor/lldb/dist/include/lldb/Breakpoint/BreakpointLocationList.h	Tue Feb 18 15:45:15 2014	(r262181)
+++ vendor/lldb/dist/include/lldb/Breakpoint/BreakpointLocationList.h	Tue Feb 18 16:23:10 2014	(r262182)
@@ -236,7 +236,7 @@ protected:
     ///     Returns breakpoint location id.
     //------------------------------------------------------------------
     lldb::BreakpointLocationSP
-    Create (const Address &addr);
+    Create (const Address &addr, bool resolve_indirect_symbols);
     
     void
     StartRecordingNewLocations(BreakpointLocationCollection &new_locations);
@@ -246,6 +246,7 @@ protected:
     
     lldb::BreakpointLocationSP
     AddLocation (const Address &addr,
+                 bool resolve_indirect_symbols,
                  bool *new_location = NULL);
 
     bool

Modified: vendor/lldb/dist/include/lldb/Core/ArchSpec.h
==============================================================================
--- vendor/lldb/dist/include/lldb/Core/ArchSpec.h	Tue Feb 18 15:45:15 2014	(r262181)
+++ vendor/lldb/dist/include/lldb/Core/ArchSpec.h	Tue Feb 18 16:23:10 2014	(r262182)
@@ -13,6 +13,7 @@
 #if defined(__cplusplus)
 
 #include "lldb/lldb-private.h"
+#include "lldb/Core/ConstString.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ADT/Triple.h"
 
@@ -90,6 +91,7 @@ public:
         eCore_x86_32_i486sx,
         
         eCore_x86_64_x86_64,
+        eCore_x86_64_x86_64h, // Haswell enabled x86_64
         eCore_uknownMach32,
         eCore_uknownMach64,
         kNumCores,
@@ -203,6 +205,27 @@ public:
     GetMachine () const;
 
     //------------------------------------------------------------------
+    /// Returns the distribution id of the architecture.
+    ///
+    /// This will be something like "ubuntu", "fedora", etc. on Linux.
+    ///
+    /// @return A ConstString ref containing the distribution id,
+    ///         potentially empty.
+    //------------------------------------------------------------------
+    const ConstString&
+    GetDistributionId () const;
+
+    //------------------------------------------------------------------
+    /// Set the distribution id of the architecture.
+    ///
+    /// This will be something like "ubuntu", "fedora", etc. on Linux.
+    /// This should be the same value returned by
+    /// Host::GetDistributionId ().
+    ///------------------------------------------------------------------
+    void
+    SetDistributionId (const char* distribution_id);
+
+    //------------------------------------------------------------------
     /// Tests if this ArchSpec is valid.
     ///
     /// @return True if the current architecture is valid, false
@@ -400,6 +423,8 @@ protected:
     Core m_core;
     lldb::ByteOrder m_byte_order;
 
+    ConstString m_distribution_id;
+
     // Called when m_def or m_entry are changed.  Fills in all remaining
     // members with default values.
     void

Modified: vendor/lldb/dist/include/lldb/Core/Communication.h
==============================================================================
--- vendor/lldb/dist/include/lldb/Core/Communication.h	Tue Feb 18 15:45:15 2014	(r262181)
+++ vendor/lldb/dist/include/lldb/Core/Communication.h	Tue Feb 18 16:23:10 2014	(r262182)
@@ -286,6 +286,8 @@ public:
     virtual bool
     StopReadThread (Error *error_ptr = NULL);
 
+    virtual bool
+    JoinReadThread (Error *error_ptr = NULL);
     //------------------------------------------------------------------
     /// Checks if there is a currently running read thread.
     ///

Modified: vendor/lldb/dist/include/lldb/Core/ConnectionFileDescriptor.h
==============================================================================
--- vendor/lldb/dist/include/lldb/Core/ConnectionFileDescriptor.h	Tue Feb 18 15:45:15 2014	(r262181)
+++ vendor/lldb/dist/include/lldb/Core/ConnectionFileDescriptor.h	Tue Feb 18 16:23:10 2014	(r262182)
@@ -11,9 +11,7 @@
 #define liblldb_ConnectionFileDescriptor_h_
 
 // C Includes
-#ifdef _WIN32
-typedef unsigned short in_port_t;
-#else
+#ifndef _WIN32
 #include <sys/socket.h>
 #include <sys/types.h>
 #include <netinet/in.h>
@@ -68,14 +66,17 @@ public:
 
     // If the read file descriptor is a socket, then return
     // the port number that is being used by the socket.
-    in_port_t
+    uint16_t
     GetReadPort () const;
     
     // If the write file descriptor is a socket, then return
     // the port number that is being used by the socket.
-    in_port_t
+    uint16_t
     GetWritePort () const;
 
+    uint16_t
+    GetBoundPort (uint32_t timeout_sec);
+
 protected:
 
     typedef enum
@@ -95,7 +96,7 @@ protected:
     BytesAvailable (uint32_t timeout_usec, Error *error_ptr);
     
     lldb::ConnectionStatus
-    SocketListen (uint16_t listen_port_num, Error *error_ptr);
+    SocketListen (const char *host_and_port, Error *error_ptr);
 
     lldb::ConnectionStatus
     ConnectTCP (const char *host_and_port, Error *error_ptr);
@@ -117,15 +118,16 @@ protected:
     FDType m_fd_send_type;
     FDType m_fd_recv_type;
     std::unique_ptr<SocketAddress> m_udp_send_sockaddr;
-    bool m_should_close_fd;     // True if this class should close the file descriptor when it goes away.
     uint32_t m_socket_timeout_usec;
     int m_pipe_read;            // A pipe that we select on the reading end of along with
     int m_pipe_write;           // m_fd_recv so we can force ourselves out of the select.
-    Mutex m_mutex;          
+    Mutex m_mutex;
+    Predicate<uint16_t> m_port_predicate; // Used when binding to port zero to wait for the thread that creates the socket, binds and listens to resolve the port number
+    bool m_should_close_fd;     // True if this class should close the file descriptor when it goes away.
     bool m_shutting_down;       // This marks that we are shutting down so if we get woken up from BytesAvailable
                                 // to disconnect, we won't try to read again.
     
-    static in_port_t
+    static uint16_t
     GetSocketPort (int fd);
 
     static int

Modified: vendor/lldb/dist/include/lldb/Core/Debugger.h
==============================================================================
--- vendor/lldb/dist/include/lldb/Core/Debugger.h	Tue Feb 18 15:45:15 2014	(r262181)
+++ vendor/lldb/dist/include/lldb/Core/Debugger.h	Tue Feb 18 16:23:10 2014	(r262182)
@@ -19,9 +19,8 @@
 #include "lldb/lldb-public.h"
 #include "lldb/Core/Broadcaster.h"
 #include "lldb/Core/Communication.h"
-#include "lldb/Core/InputReaderStack.h"
+#include "lldb/Core/IOHandler.h"
 #include "lldb/Core/Listener.h"
-#include "lldb/Core/StreamFile.h"
 #include "lldb/Core/SourceManager.h"
 #include "lldb/Core/UserID.h"
 #include "lldb/Core/UserSettingsController.h"
@@ -91,23 +90,25 @@ public:
     void
     SetAsyncExecution (bool async);
 
-    File &
+    lldb::StreamFileSP
     GetInputFile ()
     {
-        return m_input_file.GetFile();
+        return m_input_file_sp;
     }
 
-    File &
+    lldb::StreamFileSP
     GetOutputFile ()
     {
-        return m_output_file.GetFile();
+        return m_output_file_sp;
     }
 
-    File &
+    lldb::StreamFileSP
     GetErrorFile ()
     {
-        return m_error_file.GetFile();
+        return m_error_file_sp;
     }
+
+    
     
     void
     SetInputFileHandle (FILE *fh, bool tranfer_ownership);
@@ -124,18 +125,6 @@ public:
     void
     RestoreInputTerminalState();
 
-    Stream&
-    GetOutputStream ()
-    {
-        return m_output_file;
-    }
-
-    Stream&
-    GetErrorStream ()
-    {
-        return m_error_file;
-    }
-
     lldb::StreamSP
     GetAsyncOutputStream ();
     
@@ -200,24 +189,38 @@ public:
     void
     DispatchInputEndOfFile ();
 
+    //------------------------------------------------------------------
+    // If any of the streams are not set, set them to the in/out/err
+    // stream of the top most input reader to ensure they at least have
+    // something
+    //------------------------------------------------------------------
     void
-    DispatchInput (const char *bytes, size_t bytes_len);
+    AdoptTopIOHandlerFilesIfInvalid (lldb::StreamFileSP &in,
+                                     lldb::StreamFileSP &out,
+                                     lldb::StreamFileSP &err);
 
     void
-    WriteToDefaultReader (const char *bytes, size_t bytes_len);
+    PushIOHandler (const lldb::IOHandlerSP& reader_sp);
 
+    bool
+    PopIOHandler (const lldb::IOHandlerSP& reader_sp);
+    
+    // Synchronously run an input reader until it is done
     void
-    PushInputReader (const lldb::InputReaderSP& reader_sp);
+    RunIOHandler (const lldb::IOHandlerSP& reader_sp);
+    
+    bool
+    IsTopIOHandler (const lldb::IOHandlerSP& reader_sp);
+
+    ConstString
+    GetTopIOHandlerControlSequence(char ch);
 
     bool
-    PopInputReader (const lldb::InputReaderSP& reader_sp);
+    HideTopIOHandler();
 
     void
-    NotifyTopInputReader (lldb::InputReaderAction notification);
+    RefreshTopIOHandler();
 
-    bool
-    InputReaderIsTopReader (const lldb::InputReaderSP& reader_sp);
-    
     static lldb::DebuggerSP
     FindDebuggerWithID (lldb::user_id_t id);
     
@@ -240,7 +243,7 @@ public:
 
 
     void
-    CleanUpInputReaders ();
+    ClearIOHandlers ();
 
     static int
     TestDebuggerRefCount ();
@@ -338,29 +341,65 @@ public:
     bool
     LoadPlugin (const FileSpec& spec, Error& error);
 
+    void
+    ExecuteIOHanders();
+    
+    bool
+    IsForwardingEvents ();
+
+    void
+    EnableForwardEvents (const lldb::ListenerSP &listener_sp);
+
+    void
+    CancelForwardEvents (const lldb::ListenerSP &listener_sp);
 protected:
 
-    static void
-    DispatchInputCallback (void *baton, const void *bytes, size_t bytes_len);
+    friend class CommandInterpreter;
+
+    bool
+    StartEventHandlerThread();
 
-    lldb::InputReaderSP
-    GetCurrentInputReader ();
-    
     void
-    ActivateInputReader (const lldb::InputReaderSP &reader_sp);
+    StopEventHandlerThread();
+
+    static lldb::thread_result_t
+    EventHandlerThread (lldb::thread_arg_t arg);
 
     bool
-    CheckIfTopInputReaderIsDone ();
+    StartIOHandlerThread();
+    
+    void
+    StopIOHandlerThread();
     
+    static lldb::thread_result_t
+    IOHandlerThread (lldb::thread_arg_t arg);
+
+    void
+    DefaultEventHandler();
+
+    void
+    HandleBreakpointEvent (const lldb::EventSP &event_sp);
+    
+    void
+    HandleProcessEvent (const lldb::EventSP &event_sp);
+
+    void
+    HandleThreadEvent (const lldb::EventSP &event_sp);
+
+    size_t
+    GetProcessSTDOUT (Process *process, Stream *stream);
+    
+    size_t
+    GetProcessSTDERR (Process *process, Stream *stream);
+
     SourceManager::SourceFileCache &
     GetSourceFileCache ()
     {
         return m_source_file_cache;
     }
-    Communication m_input_comm;
-    StreamFile m_input_file;
-    StreamFile m_output_file;
-    StreamFile m_error_file;
+    lldb::StreamFileSP m_input_file_sp;
+    lldb::StreamFileSP m_output_file_sp;
+    lldb::StreamFileSP m_error_file_sp;
     TerminalState m_terminal_state;
     TargetList m_target_list;
     PlatformList m_platform_list;
@@ -370,8 +409,7 @@ protected:
                                                         // source file cache.
     std::unique_ptr<CommandInterpreter> m_command_interpreter_ap;
 
-    InputReaderStack m_input_reader_stack;
-    std::string m_input_reader_data;
+    IOHandlerStack m_input_reader_stack;
     typedef std::map<std::string, lldb::StreamWP> LogStreamMap;
     LogStreamMap m_log_streams;
     lldb::StreamSP m_log_callback_stream_sp;
@@ -379,7 +417,10 @@ protected:
     static LoadPluginCallbackType g_load_plugin_callback;
     typedef std::vector<lldb::DynamicLibrarySP> LoadedPluginsList;
     LoadedPluginsList m_loaded_plugins;
-    
+    lldb::thread_t m_event_handler_thread;
+    lldb::thread_t m_io_handler_thread;
+    lldb::ListenerSP m_forward_listener_sp;
+    bool m_event_handler_thread_alive;
     void
     InstanceInitialize ();
     

Modified: vendor/lldb/dist/include/lldb/Core/Disassembler.h
==============================================================================
--- vendor/lldb/dist/include/lldb/Core/Disassembler.h	Tue Feb 18 15:45:15 2014	(r262181)
+++ vendor/lldb/dist/include/lldb/Core/Disassembler.h	Tue Feb 18 16:23:10 2014	(r262182)
@@ -175,6 +175,9 @@ public:
     uint32_t
     GetIndexOfInstructionAtLoadAddress (lldb::addr_t load_addr, Target &target);
 
+    uint32_t
+    GetIndexOfInstructionAtAddress (const Address &addr);
+
     void
     Clear();
 

Added: vendor/lldb/dist/include/lldb/Core/IOHandler.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ vendor/lldb/dist/include/lldb/Core/IOHandler.h	Tue Feb 18 16:23:10 2014	(r262182)
@@ -0,0 +1,646 @@
+//===-- IOHandler.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_IOHandler_h_
+#define liblldb_IOHandler_h_
+
+#include <string.h>
+
+#include <stack>
+
+#include "lldb/lldb-public.h"
+#include "lldb/lldb-enumerations.h"
+#include "lldb/Core/ConstString.h"
+#include "lldb/Core/Error.h"
+#include "lldb/Core/Flags.h"
+#include "lldb/Core/StringList.h"

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201402181623.s1IGNBg8034318>