diff --git a/lldb/include/lldb/API/SBBreakpointLocation.h b/lldb/include/lldb/API/SBBreakpointLocation.h index bb14cd1fdfd8..652b7c5eed50 100644 --- a/lldb/include/lldb/API/SBBreakpointLocation.h +++ b/lldb/include/lldb/API/SBBreakpointLocation.h @@ -87,11 +87,11 @@ public: SBBreakpoint GetBreakpoint (); + SBBreakpointLocation (const lldb::BreakpointLocationSP &break_loc_sp); + private: friend class SBBreakpoint; friend class lldb_private::ScriptInterpreterPython; - - SBBreakpointLocation (const lldb::BreakpointLocationSP &break_loc_sp); void SetLocation (const lldb::BreakpointLocationSP &break_loc_sp); diff --git a/lldb/include/lldb/API/SBCommandInterpreter.h b/lldb/include/lldb/API/SBCommandInterpreter.h index f6a839c46256..0ce9d4a588c0 100644 --- a/lldb/include/lldb/API/SBCommandInterpreter.h +++ b/lldb/include/lldb/API/SBCommandInterpreter.h @@ -101,7 +101,9 @@ private: SBCommandInterpreter (lldb_private::CommandInterpreter *interpreter_ptr = NULL); // Access using SBDebugger::GetCommandInterpreter(); - + static void + InitializeSWIG (); + lldb_private::CommandInterpreter *m_opaque_ptr; }; diff --git a/lldb/include/lldb/API/SBFrame.h b/lldb/include/lldb/API/SBFrame.h index da90867a14bd..9d7165b36aaf 100644 --- a/lldb/include/lldb/API/SBFrame.h +++ b/lldb/include/lldb/API/SBFrame.h @@ -130,6 +130,8 @@ public: bool GetDescription (lldb::SBStream &description); + SBFrame (const lldb::StackFrameSP &lldb_object_sp); + protected: friend class SBValue; @@ -152,8 +154,6 @@ private: #endif - SBFrame (const lldb::StackFrameSP &lldb_object_sp); - void SetFrame (const lldb::StackFrameSP &lldb_object_sp); diff --git a/lldb/include/lldb/Interpreter/ScriptInterpreter.h b/lldb/include/lldb/Interpreter/ScriptInterpreter.h index da8bce60b7e4..438222c74563 100644 --- a/lldb/include/lldb/Interpreter/ScriptInterpreter.h +++ b/lldb/include/lldb/Interpreter/ScriptInterpreter.h @@ -20,6 +20,12 @@ class ScriptInterpreter { public: + typedef void (*SWIGInitCallback) (void); + + typedef bool (*SWIGBreakpointCallbackFunction) (const char *python_function_name, + const char *session_dictionary_name, + const lldb::StackFrameSP& frame_sp, + const lldb::BreakpointLocationSP &bp_loc_sp); typedef enum { eCharPtr, @@ -97,10 +103,11 @@ public: LanguageToString (lldb::ScriptLanguage language); static void - Initialize (); + InitializeInterpreter (SWIGInitCallback python_swig_init_callback, + SWIGBreakpointCallbackFunction python_swig_breakpoint_callback); static void - Terminate (); + TerminateInterpreter (); virtual void ResetOutputFileHandle (FILE *new_fh) { } //By default, do nothing. diff --git a/lldb/include/lldb/Interpreter/ScriptInterpreterPython.h b/lldb/include/lldb/Interpreter/ScriptInterpreterPython.h index 42642174b72c..4b1c38d5cdc6 100644 --- a/lldb/include/lldb/Interpreter/ScriptInterpreterPython.h +++ b/lldb/include/lldb/Interpreter/ScriptInterpreterPython.h @@ -84,10 +84,11 @@ public: RunEmbeddedPythonInterpreter (lldb::thread_arg_t baton); static void - Initialize (); - + InitializePrivate (); + static void - Terminate (); + InitializeInterpreter (SWIGInitCallback python_swig_init_callback, + SWIGBreakpointCallbackFunction python_swig_breakpoint_callback); protected: diff --git a/lldb/lldb.xcodeproj/project.pbxproj b/lldb/lldb.xcodeproj/project.pbxproj index 98b2307b530f..6f4e106cf38f 100644 --- a/lldb/lldb.xcodeproj/project.pbxproj +++ b/lldb/lldb.xcodeproj/project.pbxproj @@ -7,20 +7,12 @@ objects = { /* Begin PBXBuildFile section */ - 260C6EA113011578005E16B0 /* File.h in Headers */ = {isa = PBXBuildFile; fileRef = 260C6EA013011578005E16B0 /* File.h */; }; 260C876A10F538E700BB2B04 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 260C876910F538E700BB2B04 /* Foundation.framework */; }; 261744781168585B005ADD65 /* SBType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 261744771168585B005ADD65 /* SBType.cpp */; }; 2617447A11685869005ADD65 /* SBType.h in Headers */ = {isa = PBXBuildFile; fileRef = 2617447911685869005ADD65 /* SBType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 2618EE661315B29C001D6D71 /* GDBRemoteCommunication.h in Headers */ = {isa = PBXBuildFile; fileRef = 2618EE5C1315B29C001D6D71 /* GDBRemoteCommunication.h */; }; - 2618EE681315B29C001D6D71 /* GDBRemoteRegisterContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 2618EE5E1315B29C001D6D71 /* GDBRemoteRegisterContext.h */; }; - 2618EE6A1315B29C001D6D71 /* ProcessGDBRemote.h in Headers */ = {isa = PBXBuildFile; fileRef = 2618EE601315B29C001D6D71 /* ProcessGDBRemote.h */; }; - 2618EE6C1315B29C001D6D71 /* ProcessGDBRemoteLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 2618EE621315B29C001D6D71 /* ProcessGDBRemoteLog.h */; }; - 2618EE6E1315B29C001D6D71 /* ThreadGDBRemote.h in Headers */ = {isa = PBXBuildFile; fileRef = 2618EE641315B29C001D6D71 /* ThreadGDBRemote.h */; }; 262CFC7711A4510000946C6C /* debugserver in Resources */ = {isa = PBXBuildFile; fileRef = 26CE05A0115C31E50022F371 /* debugserver */; }; - 2635DA87127D0D0400675BC1 /* SharingPtr.h in Headers */ = {isa = PBXBuildFile; fileRef = 261B5A5311C3F2AD00AABD0A /* SharingPtr.h */; settings = {ATTRIBUTES = (Public, ); }; }; 26368A3C126B697600E8659F /* darwin-debug.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26368A3B126B697600E8659F /* darwin-debug.cpp */; }; 26368AF7126B960500E8659F /* darwin-debug in Resources */ = {isa = PBXBuildFile; fileRef = 26579F68126A25920007C5CB /* darwin-debug */; }; - 264A43BC1320B3B4005B4096 /* Platform.h in Headers */ = {isa = PBXBuildFile; fileRef = 264A43BB1320B3B4005B4096 /* Platform.h */; }; 265ABF6310F42EE900531910 /* DebugSymbols.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 265ABF6210F42EE900531910 /* DebugSymbols.framework */; }; 2668020E115FD12C008E1FE4 /* lldb-defines.h in Headers */ = {isa = PBXBuildFile; fileRef = 26BC7C2510F1B3BC00F91463 /* lldb-defines.h */; settings = {ATTRIBUTES = (Public, ); }; }; 2668020F115FD12C008E1FE4 /* lldb-enumerations.h in Headers */ = {isa = PBXBuildFile; fileRef = 26BC7C2610F1B3BC00F91463 /* lldb-enumerations.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -64,10 +56,6 @@ 26680336116005EF008E1FE4 /* SBBreakpointLocation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF16CC7114086A1007A7B3F /* SBBreakpointLocation.cpp */; }; 26680337116005F1008E1FE4 /* SBBreakpoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF16A9C11402D5B007A7B3F /* SBBreakpoint.cpp */; }; 2668035C11601108008E1FE4 /* LLDB.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26680207115FD0ED008E1FE4 /* LLDB.framework */; }; - 266A42D8128E40040090CF7C /* ClangNamespaceDecl.h in Headers */ = {isa = PBXBuildFile; fileRef = 266A42D7128E40040090CF7C /* ClangNamespaceDecl.h */; }; - 266F5CBC12FC846200DFCE33 /* Config.h in Headers */ = {isa = PBXBuildFile; fileRef = 266F5CBB12FC846200DFCE33 /* Config.h */; }; - 2675F7011332BE690067997B /* PlatformRemoteiOS.h in Headers */ = {isa = PBXBuildFile; fileRef = 2675F6FF1332BE690067997B /* PlatformRemoteiOS.h */; }; - 26879CE61333F5750012C1F8 /* CommandObjectPlatform.h in Headers */ = {isa = PBXBuildFile; fileRef = 26879CE51333F5750012C1F8 /* CommandObjectPlatform.h */; }; 2689000013353DB600698AC0 /* BreakpointResolverAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = 26D0DD5010FE554D00271C65 /* BreakpointResolverAddress.h */; }; 2689000113353DB600698AC0 /* BreakpointResolverAddress.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26D0DD5310FE555900271C65 /* BreakpointResolverAddress.cpp */; }; 2689000213353DB600698AC0 /* BreakpointResolverFileLine.h in Headers */ = {isa = PBXBuildFile; fileRef = 26D0DD5110FE554D00271C65 /* BreakpointResolverFileLine.h */; }; @@ -194,7 +182,6 @@ 2689007B13353E1A00698AC0 /* CFCString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26BC7EF810F1B8AD00F91463 /* CFCString.cpp */; }; 2689007C13353E1A00698AC0 /* Symbols.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2689B0B5113EE47E00A4AEDB /* Symbols.cpp */; }; 2689007D13353E2200698AC0 /* Args.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26BC7E6C10F1B85900F91463 /* Args.cpp */; }; - 2689007E13353E2200698AC0 /* LLDBWrapPython.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26A4EEB511682AAC007A372A /* LLDBWrapPython.cpp */; }; 2689007F13353E2200698AC0 /* CommandCompletions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C09CB74116BD98B00C7A725 /* CommandCompletions.cpp */; }; 2689008013353E2200698AC0 /* CommandInterpreter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26BC7F0810F1B8DD00F91463 /* CommandInterpreter.cpp */; }; 2689008113353E2200698AC0 /* CommandObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26BC7F0910F1B8DD00F91463 /* CommandObject.cpp */; }; @@ -365,19 +352,22 @@ 2689FFFD13353DB600698AC0 /* BreakpointOptions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26BC7E1110F1B83100F91463 /* BreakpointOptions.cpp */; }; 2689FFFE13353DB600698AC0 /* BreakpointResolver.h in Headers */ = {isa = PBXBuildFile; fileRef = 26BC7CF610F1B71400F91463 /* BreakpointResolver.h */; }; 2689FFFF13353DB600698AC0 /* BreakpointResolver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26BC7E1210F1B83100F91463 /* BreakpointResolver.cpp */; }; - 268A68401321B53B000E3FB8 /* DynamicLoaderStatic.h in Headers */ = {isa = PBXBuildFile; fileRef = 268A683E1321B53B000E3FB8 /* DynamicLoaderStatic.h */; }; - 268DA872130095D000C9483A /* Terminal.h in Headers */ = {isa = PBXBuildFile; fileRef = 268DA871130095D000C9483A /* Terminal.h */; }; 268F9D53123AA15200B91E9B /* SBSymbolContextList.h in Headers */ = {isa = PBXBuildFile; fileRef = 268F9D52123AA15200B91E9B /* SBSymbolContextList.h */; settings = {ATTRIBUTES = (Public, ); }; }; 268F9D55123AA16600B91E9B /* SBSymbolContextList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 268F9D54123AA16600B91E9B /* SBSymbolContextList.cpp */; }; + 26B1FA1413380E61002886E2 /* LLDBWrapPython.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26A4EEB511682AAC007A372A /* LLDBWrapPython.cpp */; }; + 26B1FCB813381071002886E2 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26F5C39010F3FA26009D5894 /* CoreFoundation.framework */; }; + 26B1FCB913381071002886E2 /* DebugSymbols.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 265ABF6210F42EE900531910 /* DebugSymbols.framework */; }; + 26B1FCBA13381071002886E2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 260C876910F538E700BB2B04 /* Foundation.framework */; }; + 26B1FCBB13381071002886E2 /* libpython.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 26F5C32410F3DF23009D5894 /* libpython.dylib */; }; + 26B1FCBC13381071002886E2 /* libobjc.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 26F5C37410F3F61B009D5894 /* libobjc.dylib */; }; + 26B1FCBD13381071002886E2 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C74CB6212288704006A8171 /* Carbon.framework */; }; + 26B1FCC21338115F002886E2 /* Host.mm in Sources */ = {isa = PBXBuildFile; fileRef = 26BC7EE810F1B88F00F91463 /* Host.mm */; }; 26B42B1F1187A92B0079C8C8 /* lldb-include.h in Headers */ = {isa = PBXBuildFile; fileRef = 26B42B1E1187A92B0079C8C8 /* lldb-include.h */; settings = {ATTRIBUTES = (Public, ); }; }; 26B42C4D1187ABA50079C8C8 /* LLDB.h in Headers */ = {isa = PBXBuildFile; fileRef = 26B42C4C1187ABA50079C8C8 /* LLDB.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 26C557811325781D008FD8FE /* PlatformMacOSX.h in Headers */ = {isa = PBXBuildFile; fileRef = 26C5577C132575AD008FD8FE /* PlatformMacOSX.h */; }; 26C72C94124322890068DC16 /* SBStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 26C72C93124322890068DC16 /* SBStream.h */; settings = {ATTRIBUTES = (Public, ); }; }; 26C72C961243229A0068DC16 /* SBStream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26C72C951243229A0068DC16 /* SBStream.cpp */; }; - 26D5B0C211B07550009A862E /* Host.mm in Sources */ = {isa = PBXBuildFile; fileRef = 26BC7EE810F1B88F00F91463 /* Host.mm */; }; - 26D5B10011B07550009A862E /* ProcessControl-mig.defs in Sources */ = {isa = PBXBuildFile; fileRef = 260C89A110F57C5600BB2B04 /* ProcessControl-mig.defs */; settings = {ATTRIBUTES = (Client, Server, ); }; }; - 26D9FDC712F784E60003F2EE /* EmulateInstruction.h in Headers */ = {isa = PBXBuildFile; fileRef = 26D9FDC612F784E60003F2EE /* EmulateInstruction.h */; }; - 26D9FDCF12F7853F0003F2EE /* EmulateInstructionARM.h in Headers */ = {isa = PBXBuildFile; fileRef = 26D9FDCD12F7853F0003F2EE /* EmulateInstructionARM.h */; }; + 26DC6A171337FE8000FF7998 /* liblldb-core.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2689FFCA13353D7A00698AC0 /* liblldb-core.a */; }; + 26DC6A1D1337FECA00FF7998 /* lldb-platform.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26DC6A1C1337FECA00FF7998 /* lldb-platform.cpp */; }; 26DE1E6B11616C2E00A093E2 /* lldb-forward-rtti.h in Headers */ = {isa = PBXBuildFile; fileRef = 26DE1E6911616C2E00A093E2 /* lldb-forward-rtti.h */; settings = {ATTRIBUTES = (Public, ); }; }; 26DE1E6C11616C2E00A093E2 /* lldb-forward.h in Headers */ = {isa = PBXBuildFile; fileRef = 26DE1E6A11616C2E00A093E2 /* lldb-forward.h */; settings = {ATTRIBUTES = (Public, ); }; }; 26DE204111618AB900A093E2 /* SBSymbolContext.h in Headers */ = {isa = PBXBuildFile; fileRef = 26DE204011618AB900A093E2 /* SBSymbolContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -396,7 +386,6 @@ 26DE20611161902700A093E2 /* SBBlock.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26DE20601161902600A093E2 /* SBBlock.cpp */; }; 26DE20631161904200A093E2 /* SBLineEntry.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26DE20621161904200A093E2 /* SBLineEntry.cpp */; }; 26DE20651161904E00A093E2 /* SBSymbol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26DE20641161904E00A093E2 /* SBSymbol.cpp */; }; - 26E6902F129C6BD500DDECD9 /* ClangExternalASTSourceCallbacks.h in Headers */ = {isa = PBXBuildFile; fileRef = 26E6902E129C6BD500DDECD9 /* ClangExternalASTSourceCallbacks.h */; }; 26F5C27710F3D9E4009D5894 /* Driver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26F5C27310F3D9E4009D5894 /* Driver.cpp */; }; 26F5C27810F3D9E4009D5894 /* IOChannel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26F5C27510F3D9E4009D5894 /* IOChannel.cpp */; }; 26F5C32510F3DF23009D5894 /* libpython.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 26F5C32410F3DF23009D5894 /* libpython.dylib */; }; @@ -404,13 +393,7 @@ 26F5C32D10F3DFDD009D5894 /* libtermcap.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 26F5C32B10F3DFDD009D5894 /* libtermcap.dylib */; }; 26F5C37510F3F61B009D5894 /* libobjc.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 26F5C37410F3F61B009D5894 /* libobjc.dylib */; }; 26F5C39110F3FA26009D5894 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26F5C39010F3FA26009D5894 /* CoreFoundation.framework */; }; - 26FA4316130103F400E71120 /* FileSpec.h in Headers */ = {isa = PBXBuildFile; fileRef = 26FA4315130103F400E71120 /* FileSpec.h */; }; - 4C61978D12823D4300FAFFCC /* AppleObjCRuntime.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C61978912823D4300FAFFCC /* AppleObjCRuntime.h */; }; - 4C61978F12823D4300FAFFCC /* AppleObjCRuntimeV1.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C61978B12823D4300FAFFCC /* AppleObjCRuntimeV1.h */; }; - 4C626534130F1B0A00C889F6 /* StreamTee.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C626533130F1B0A00C889F6 /* StreamTee.h */; }; 4C74CB6312288704006A8171 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C74CB6212288704006A8171 /* Carbon.framework */; }; - 4C7CF7E41295E10E00B4FBB5 /* ThreadPlanCallUserExpression.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C7CF7E31295E10E00B4FBB5 /* ThreadPlanCallUserExpression.h */; }; - 4CC2A14D128C7409001531C4 /* ThreadPlanTracer.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CC2A14C128C7409001531C4 /* ThreadPlanTracer.h */; }; 9A19A6AF1163BBB200E0D453 /* SBValue.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A19A6A51163BB7E00E0D453 /* SBValue.h */; settings = {ATTRIBUTES = (Public, ); }; }; 9A19A6B01163BBB300E0D453 /* SBValue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A19A6AD1163BB9800E0D453 /* SBValue.cpp */; }; 9A357583116CFDEE00E8ED2F /* SBValueList.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A357582116CFDEE00E8ED2F /* SBValueList.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -426,9 +409,6 @@ 9AC70390117675270086C050 /* SBInstructionList.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AC7038F117675270086C050 /* SBInstructionList.h */; settings = {ATTRIBUTES = (Public, ); }; }; 9AC703AF117675410086C050 /* SBInstruction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AC703AE117675410086C050 /* SBInstruction.cpp */; }; 9AC703B1117675490086C050 /* SBInstructionList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AC703B0117675490086C050 /* SBInstructionList.cpp */; }; - B23DD25012EDFAC1000C3894 /* ARMUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = B23DD24F12EDFAC1000C3894 /* ARMUtils.h */; }; - B287E63F12EFAE2C00C9BEFE /* ARMDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = B287E63E12EFAE2C00C9BEFE /* ARMDefines.h */; }; - B2D3033712EFA5C500F84EB3 /* InstructionUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = B2D3033612EFA5C500F84EB3 /* InstructionUtils.h */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -474,6 +454,20 @@ remoteGlobalIDString = 26CE0593115C31C20022F371; remoteInfo = "lldb-debugserver"; }; + 26DC6A151337FE7300FF7998 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 2689FFC913353D7A00698AC0; + remoteInfo = "lldb-core"; + }; + 26DC6A201338008100FF7998 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 26DC6A0F1337FE6900FF7998; + remoteInfo = "lldb-platform"; + }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ @@ -950,6 +944,8 @@ 26D9FDCC12F7853F0003F2EE /* EmulateInstructionARM.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = EmulateInstructionARM.cpp; path = Instruction/ARM/EmulateInstructionARM.cpp; sourceTree = ""; }; 26D9FDCD12F7853F0003F2EE /* EmulateInstructionARM.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EmulateInstructionARM.h; path = Instruction/ARM/EmulateInstructionARM.h; sourceTree = ""; }; 26DAFD9711529BC7005A394E /* ExecutionContextScope.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ExecutionContextScope.h; path = include/lldb/Target/ExecutionContextScope.h; sourceTree = ""; }; + 26DC6A101337FE6900FF7998 /* lldb-platform */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "lldb-platform"; sourceTree = BUILT_PRODUCTS_DIR; }; + 26DC6A1C1337FECA00FF7998 /* lldb-platform.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "lldb-platform.cpp"; path = "tools/lldb-platform/lldb-platform.cpp"; sourceTree = ""; }; 26DE1E6911616C2E00A093E2 /* lldb-forward-rtti.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "lldb-forward-rtti.h"; path = "include/lldb/lldb-forward-rtti.h"; sourceTree = ""; }; 26DE1E6A11616C2E00A093E2 /* lldb-forward.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "lldb-forward.h"; path = "include/lldb/lldb-forward.h"; sourceTree = ""; }; 26DE204011618AB900A093E2 /* SBSymbolContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SBSymbolContext.h; path = include/lldb/API/SBSymbolContext.h; sourceTree = ""; }; @@ -1200,6 +1196,20 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 26DC6A0E1337FE6900FF7998 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 26DC6A171337FE8000FF7998 /* liblldb-core.a in Frameworks */, + 26B1FCB813381071002886E2 /* CoreFoundation.framework in Frameworks */, + 26B1FCB913381071002886E2 /* DebugSymbols.framework in Frameworks */, + 26B1FCBA13381071002886E2 /* Foundation.framework in Frameworks */, + 26B1FCBB13381071002886E2 /* libpython.dylib in Frameworks */, + 26B1FCBC13381071002886E2 /* libobjc.dylib in Frameworks */, + 26B1FCBD13381071002886E2 /* Carbon.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 26F5C26810F3D9A4009D5894 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -1261,6 +1271,7 @@ 26F5C26A10F3D9A4009D5894 /* lldb */, 26680207115FD0ED008E1FE4 /* LLDB.framework */, 26579F68126A25920007C5CB /* darwin-debug */, + 26DC6A101337FE6900FF7998 /* lldb-platform */, ); name = Products; sourceTree = ""; @@ -2238,12 +2249,21 @@ name = ARM; sourceTree = ""; }; + 26DC6A1B1337FEA400FF7998 /* lldb-platform */ = { + isa = PBXGroup; + children = ( + 26DC6A1C1337FECA00FF7998 /* lldb-platform.cpp */, + ); + name = "lldb-platform"; + sourceTree = ""; + }; 26F5C22410F3D950009D5894 /* Tools */ = { isa = PBXGroup; children = ( 26579F55126A255E0007C5CB /* darwin-debug */, 265E9BE0115C2B8500D0DCCB /* debugserver */, 26F5C22510F3D956009D5894 /* Driver */, + 26DC6A1B1337FEA400FF7998 /* lldb-platform */, ); name = Tools; sourceTree = ""; @@ -2438,33 +2458,6 @@ 2617447A11685869005ADD65 /* SBType.h in Headers */, 9A19A6AF1163BBB200E0D453 /* SBValue.h in Headers */, 9A357583116CFDEE00E8ED2F /* SBValueList.h in Headers */, - 2635DA87127D0D0400675BC1 /* SharingPtr.h in Headers */, - 4C61978D12823D4300FAFFCC /* AppleObjCRuntime.h in Headers */, - 4C61978F12823D4300FAFFCC /* AppleObjCRuntimeV1.h in Headers */, - 4CC2A14D128C7409001531C4 /* ThreadPlanTracer.h in Headers */, - 266A42D8128E40040090CF7C /* ClangNamespaceDecl.h in Headers */, - 26E6902F129C6BD500DDECD9 /* ClangExternalASTSourceCallbacks.h in Headers */, - 4C7CF7E41295E10E00B4FBB5 /* ThreadPlanCallUserExpression.h in Headers */, - B23DD25012EDFAC1000C3894 /* ARMUtils.h in Headers */, - B2D3033712EFA5C500F84EB3 /* InstructionUtils.h in Headers */, - B287E63F12EFAE2C00C9BEFE /* ARMDefines.h in Headers */, - 26D9FDC712F784E60003F2EE /* EmulateInstruction.h in Headers */, - 26D9FDCF12F7853F0003F2EE /* EmulateInstructionARM.h in Headers */, - 266F5CBC12FC846200DFCE33 /* Config.h in Headers */, - 268DA872130095D000C9483A /* Terminal.h in Headers */, - 26FA4316130103F400E71120 /* FileSpec.h in Headers */, - 260C6EA113011578005E16B0 /* File.h in Headers */, - 4C626534130F1B0A00C889F6 /* StreamTee.h in Headers */, - 2618EE661315B29C001D6D71 /* GDBRemoteCommunication.h in Headers */, - 2618EE681315B29C001D6D71 /* GDBRemoteRegisterContext.h in Headers */, - 2618EE6A1315B29C001D6D71 /* ProcessGDBRemote.h in Headers */, - 2618EE6C1315B29C001D6D71 /* ProcessGDBRemoteLog.h in Headers */, - 2618EE6E1315B29C001D6D71 /* ThreadGDBRemote.h in Headers */, - 264A43BC1320B3B4005B4096 /* Platform.h in Headers */, - 268A68401321B53B000E3FB8 /* DynamicLoaderStatic.h in Headers */, - 26C557811325781D008FD8FE /* PlatformMacOSX.h in Headers */, - 2675F7011332BE690067997B /* PlatformRemoteiOS.h in Headers */, - 26879CE61333F5750012C1F8 /* CommandObjectPlatform.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2516,6 +2509,7 @@ isa = PBXNativeTarget; buildConfigurationList = 2668020B115FD0EE008E1FE4 /* Build configuration list for PBXNativeTarget "LLDB" */; buildPhases = ( + 26DC6A5813380D4300FF7998 /* Build swig wrapper classes */, 26680202115FD0ED008E1FE4 /* Headers */, 26680203115FD0ED008E1FE4 /* Resources */, 26680204115FD0ED008E1FE4 /* Sources */, @@ -2540,7 +2534,6 @@ buildConfigurationList = 2689FFD813353D7A00698AC0 /* Build configuration list for PBXNativeTarget "lldb-core" */; buildPhases = ( 261EECA21337D399001D193C /* Build llvm and clang */, - 261EECA41337D4BB001D193C /* Build swig wrapper classes */, 2689FFC613353D7A00698AC0 /* Sources */, 2689FFC713353D7A00698AC0 /* Frameworks */, 2689FFC813353D7A00698AC0 /* Headers */, @@ -2554,6 +2547,23 @@ productReference = 2689FFCA13353D7A00698AC0 /* liblldb-core.a */; productType = "com.apple.product-type.library.dynamic"; }; + 26DC6A0F1337FE6900FF7998 /* lldb-platform */ = { + isa = PBXNativeTarget; + buildConfigurationList = 26DC6A1A1337FE8B00FF7998 /* Build configuration list for PBXNativeTarget "lldb-platform" */; + buildPhases = ( + 26DC6A0D1337FE6900FF7998 /* Sources */, + 26DC6A0E1337FE6900FF7998 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 26DC6A161337FE7300FF7998 /* PBXTargetDependency */, + ); + name = "lldb-platform"; + productName = "lldb-platform"; + productReference = 26DC6A101337FE6900FF7998 /* lldb-platform */; + productType = "com.apple.product-type.tool"; + }; 26F5C26910F3D9A4009D5894 /* lldb-tool */ = { isa = PBXNativeTarget; buildConfigurationList = 26F5C26E10F3D9C5009D5894 /* Build configuration list for PBXNativeTarget "lldb-tool" */; @@ -2566,6 +2576,7 @@ dependencies = ( 26CE0610115C438C0022F371 /* PBXTargetDependency */, 266803621160110D008E1FE4 /* PBXTargetDependency */, + 26DC6A211338008100FF7998 /* PBXTargetDependency */, ); name = "lldb-tool"; productName = lldb; @@ -2598,6 +2609,7 @@ 26680206115FD0ED008E1FE4 /* LLDB */, 26579F67126A25920007C5CB /* darwin-debug */, 2689FFC913353D7A00698AC0 /* lldb-core */, + 26DC6A0F1337FE6900FF7998 /* lldb-platform */, ); }; /* End PBXProject section */ @@ -2657,7 +2669,7 @@ shellPath = /bin/sh; shellScript = "perl $SRCROOT/scripts/build-llvm.pl"; }; - 261EECA41337D4BB001D193C /* Build swig wrapper classes */ = { + 26DC6A5813380D4300FF7998 /* Build swig wrapper classes */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -2706,8 +2718,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 26D5B0C211B07550009A862E /* Host.mm in Sources */, - 26D5B10011B07550009A862E /* ProcessControl-mig.defs in Sources */, 26680324116005D9008E1FE4 /* SBThread.cpp in Sources */, 26680326116005DB008E1FE4 /* SBTarget.cpp in Sources */, 26680327116005DC008E1FE4 /* SBSourceManager.cpp in Sources */, @@ -2742,6 +2752,7 @@ 9AA69DB1118A024600D753A0 /* SBInputReader.cpp in Sources */, 268F9D55123AA16600B91E9B /* SBSymbolContextList.cpp in Sources */, 26C72C961243229A0068DC16 /* SBStream.cpp in Sources */, + 26B1FA1413380E61002886E2 /* LLDBWrapPython.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2877,7 +2888,6 @@ 2689007B13353E1A00698AC0 /* CFCString.cpp in Sources */, 2689007C13353E1A00698AC0 /* Symbols.cpp in Sources */, 2689007D13353E2200698AC0 /* Args.cpp in Sources */, - 2689007E13353E2200698AC0 /* LLDBWrapPython.cpp in Sources */, 2689007F13353E2200698AC0 /* CommandCompletions.cpp in Sources */, 2689008013353E2200698AC0 /* CommandInterpreter.cpp in Sources */, 2689008113353E2200698AC0 /* CommandObject.cpp in Sources */, @@ -3027,6 +3037,15 @@ 2689011113353E8200698AC0 /* StringExtractor.cpp in Sources */, 2689011213353E8200698AC0 /* StringExtractorGDBRemote.cpp in Sources */, 2689011313353E8200698AC0 /* PseudoTerminal.cpp in Sources */, + 26B1FCC21338115F002886E2 /* Host.mm in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 26DC6A0D1337FE6900FF7998 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 26DC6A1D1337FECA00FF7998 /* lldb-platform.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3068,6 +3087,16 @@ name = "lldb-debugserver"; targetProxy = 26CE060F115C438C0022F371 /* PBXContainerItemProxy */; }; + 26DC6A161337FE7300FF7998 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 2689FFC913353D7A00698AC0 /* lldb-core */; + targetProxy = 26DC6A151337FE7300FF7998 /* PBXContainerItemProxy */; + }; + 26DC6A211338008100FF7998 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 26DC6A0F1337FE6900FF7998 /* lldb-platform */; + targetProxy = 26DC6A201338008100FF7998 /* PBXContainerItemProxy */; + }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ @@ -3211,7 +3240,7 @@ "$(LLVM_BUILD_DIR)", ); LLVM_BUILD_DIR = "$(SRCROOT)/llvm"; - LLVM_CONFIGURATION = "Debug+Asserts"; + LLVM_CONFIGURATION = Release; OTHER_CFLAGS = "-Wparentheses"; OTHER_CPLUSPLUSFLAGS = ( "-fno-rtti", @@ -3219,7 +3248,6 @@ "$(OTHER_CFLAGS)", ); OTHER_LDFLAGS = ( - "-lllvmclang", "-framework", Foundation, "-framework", @@ -3264,7 +3292,7 @@ "$(LLVM_BUILD_DIR)", ); LLVM_BUILD_DIR = "$(SRCROOT)/llvm"; - LLVM_CONFIGURATION = "Debug+Asserts"; + LLVM_CONFIGURATION = Release; OTHER_CFLAGS = "-Wparentheses"; OTHER_CPLUSPLUSFLAGS = ( "-fno-rtti", @@ -3272,7 +3300,6 @@ "$(OTHER_CFLAGS)", ); OTHER_LDFLAGS = ( - "-lllvmclang", "-framework", Foundation, "-framework", @@ -3291,6 +3318,8 @@ buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 46; + DYLIB_CURRENT_VERSION = 46; EXECUTABLE_EXTENSION = a; GCC_ENABLE_OBJC_GC = supported; GCC_INLINES_ARE_PRIVATE_EXTERN = NO; @@ -3299,7 +3328,11 @@ __STDC_LIMIT_MACROS, LLDB_CONFIGURATION_DEBUG, ); - LD_DYLIB_INSTALL_NAME = "$(DYLIB_INSTALL_NAME_BASE:standardizepath)/lldb-core.a"; + LD_DYLIB_INSTALL_NAME = "/Developer/Library/PrivateFrameworks/LLDB.framework/Resources/lldb-core.a"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(LLVM_BUILD_DIR)", + ); LLVM_BUILD_DIR = "$(SRCROOT)/llvm"; LLVM_CONFIGURATION = Release; MACH_O_TYPE = staticlib; @@ -3310,10 +3343,12 @@ "-Wglobal-constructors", "$(OTHER_CFLAGS)", ); + OTHER_LDFLAGS = "-lllvmclang"; PRODUCT_NAME = "lib$(TARGET_NAME)"; SDKROOT = macosx; STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = static; USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/source $(SRCROOT)/source/Plugins/Process/Utility $(SRCROOT)/include $(SRCROOT)/source/Host/macosx/cfcpp $(SRCROOT)/llvm/include $(SRCROOT)/llvm/tools/clang/include $(LLVM_BUILD_DIR)/llvm/include $(LLVM_BUILD_DIR)/llvm/tools/clang/include"; + VERSIONING_SYSTEM = "apple-generic"; }; name = Debug; }; @@ -3322,7 +3357,9 @@ buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; COPY_PHASE_STRIP = YES; + CURRENT_PROJECT_VERSION = 46; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DYLIB_CURRENT_VERSION = 46; EXECUTABLE_EXTENSION = a; GCC_ENABLE_OBJC_GC = supported; GCC_INLINES_ARE_PRIVATE_EXTERN = NO; @@ -3331,7 +3368,12 @@ __STDC_LIMIT_MACROS, LLDB_CONFIGURATION_RELEASE, ); - LD_DYLIB_INSTALL_NAME = "$(DYLIB_INSTALL_NAME_BASE:standardizepath)/lldb-core.a"; + LD_DYLIB_INSTALL_NAME = "/Developer/Library/PrivateFrameworks/LLDB.framework/Resources/lldb-core.a"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(LLVM_BUILD_DIR)", + ); + LLVM_BUILD_DIR = "$(SRCROOT)/llvm"; LLVM_CONFIGURATION = Release; MACH_O_TYPE = staticlib; MACOSX_DEPLOYMENT_TARGET = 10.6; @@ -3341,10 +3383,12 @@ "-Wglobal-constructors", "$(OTHER_CFLAGS)", ); + OTHER_LDFLAGS = "-lllvmclang"; PRODUCT_NAME = "lib$(TARGET_NAME)"; SDKROOT = macosx; STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = static; USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/source $(SRCROOT)/source/Plugins/Process/Utility $(SRCROOT)/include $(SRCROOT)/source/Host/macosx/cfcpp $(SRCROOT)/llvm/include $(SRCROOT)/llvm/tools/clang/include $(LLVM_BUILD_DIR)/llvm/include $(LLVM_BUILD_DIR)/llvm/tools/clang/include"; + VERSIONING_SYSTEM = "apple-generic"; }; name = Release; }; @@ -3353,7 +3397,9 @@ buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; COPY_PHASE_STRIP = YES; + CURRENT_PROJECT_VERSION = 46; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DYLIB_CURRENT_VERSION = 46; EXECUTABLE_EXTENSION = a; GCC_ENABLE_OBJC_GC = supported; GCC_INLINES_ARE_PRIVATE_EXTERN = NO; @@ -3362,7 +3408,12 @@ __STDC_LIMIT_MACROS, LLDB_CONFIGURATION_BUILD_AND_INTEGRATION, ); - LD_DYLIB_INSTALL_NAME = "$(DYLIB_INSTALL_NAME_BASE:standardizepath)/lldb-core.a"; + LD_DYLIB_INSTALL_NAME = "/Developer/Library/PrivateFrameworks/LLDB.framework/Resources/lldb-core.a"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(LLVM_BUILD_DIR)", + ); + LLVM_BUILD_DIR = "$(DERIVED_FILE_DIR)/llvm.build"; LLVM_CONFIGURATION = Release; MACH_O_TYPE = staticlib; MACOSX_DEPLOYMENT_TARGET = 10.6; @@ -3372,10 +3423,12 @@ "-Wglobal-constructors", "$(OTHER_CFLAGS)", ); + OTHER_LDFLAGS = "-lllvmclang"; PRODUCT_NAME = "lib$(TARGET_NAME)"; SDKROOT = macosx; STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = static; USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/source $(SRCROOT)/source/Plugins/Process/Utility $(SRCROOT)/include $(SRCROOT)/source/Host/macosx/cfcpp $(SRCROOT)/llvm/include $(SRCROOT)/llvm/tools/clang/include $(LLVM_BUILD_DIR)/llvm/include $(LLVM_BUILD_DIR)/llvm/tools/clang/include"; + VERSIONING_SYSTEM = "apple-generic"; }; name = BuildAndIntegration; }; @@ -3475,7 +3528,7 @@ "$(LLVM_BUILD_DIR)", ); LLVM_BUILD_DIR = "$(DERIVED_FILE_DIR)/llvm.build"; - LLVM_CONFIGURATION = "Debug+Asserts"; + LLVM_CONFIGURATION = Release; OTHER_CFLAGS = "-Wparentheses"; OTHER_CPLUSPLUSFLAGS = ( "-fno-rtti", @@ -3483,7 +3536,6 @@ "$(OTHER_CFLAGS)", ); OTHER_LDFLAGS = ( - "-lllvmclang", "-framework", Foundation, "-framework", @@ -3497,6 +3549,78 @@ }; name = BuildAndIntegration; }; + 26DC6A121337FE6A00FF7998 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks\"", + ); + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_CPP_RTTI = NO; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = 0; + INSTALL_PATH = /usr/local/bin; + OTHER_LDFLAGS = ( + "-framework", + Foundation, + "-framework", + AppKit, + ); + PREBINDING = NO; + PRODUCT_NAME = "lldb-platform"; + USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include $(SRCROOT)/llvm/include $(SRCROOT)/llvm/tools/clang/include $(LLVM_BUILD_DIR)/llvm/include $(LLVM_BUILD_DIR)/llvm/tools/clang/include $(SRCROOT)/source/Plugins/Process/gdb-remote $(SRCROOT)/source"; + }; + name = Debug; + }; + 26DC6A131337FE6A00FF7998 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks\"", + ); + GCC_ENABLE_CPP_RTTI = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + OTHER_LDFLAGS = ( + "-framework", + Foundation, + "-framework", + AppKit, + ); + PREBINDING = NO; + PRODUCT_NAME = "lldb-platform"; + USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include $(SRCROOT)/llvm/include $(SRCROOT)/llvm/tools/clang/include $(LLVM_BUILD_DIR)/llvm/include $(LLVM_BUILD_DIR)/llvm/tools/clang/include $(SRCROOT)/source/Plugins/Process/gdb-remote $(SRCROOT)/source"; + ZERO_LINK = NO; + }; + name = Release; + }; + 26DC6A141337FE6A00FF7998 /* BuildAndIntegration */ = { + isa = XCBuildConfiguration; + buildSettings = { + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks\"", + ); + GCC_ENABLE_CPP_RTTI = NO; + GCC_MODEL_TUNING = G5; + INSTALL_PATH = /usr/local/bin; + OTHER_LDFLAGS = ( + "-framework", + Foundation, + "-framework", + AppKit, + ); + PREBINDING = NO; + PRODUCT_NAME = "lldb-platform"; + USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include $(SRCROOT)/llvm/include $(SRCROOT)/llvm/tools/clang/include $(LLVM_BUILD_DIR)/llvm/include $(LLVM_BUILD_DIR)/llvm/tools/clang/include $(SRCROOT)/source/Plugins/Process/gdb-remote $(SRCROOT)/source"; + }; + name = BuildAndIntegration; + }; 26F5C26C10F3D9A5009D5894 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -3614,6 +3738,16 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = BuildAndIntegration; }; + 26DC6A1A1337FE8B00FF7998 /* Build configuration list for PBXNativeTarget "lldb-platform" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 26DC6A121337FE6A00FF7998 /* Debug */, + 26DC6A131337FE6A00FF7998 /* Release */, + 26DC6A141337FE6A00FF7998 /* BuildAndIntegration */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = BuildAndIntegration; + }; 26F5C26E10F3D9C5009D5894 /* Build configuration list for PBXNativeTarget "lldb-tool" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/lldb/scripts/lldb.swig b/lldb/scripts/lldb.swig index ff0463305d6d..c34e7e9013e4 100644 --- a/lldb/scripts/lldb.swig +++ b/lldb/scripts/lldb.swig @@ -205,14 +205,17 @@ // and is used when a script command is attached to a breakpoint for execution. SWIGEXPORT bool -LLDBSWIGPythonBreakpointCallbackFunction +LLDBSwigPythonBreakpointCallbackFunction ( const char *python_function_name, const char *session_dictionary_name, - lldb::SBFrame& sb_frame, - lldb::SBBreakpointLocation& sb_bp_loc + const lldb::StackFrameSP& frame_sp, + const lldb::BreakpointLocationSP& bp_loc_sp ) { + lldb::SBFrame sb_frame (frame_sp); + lldb::SBBreakpointLocation sb_bp_loc(bp_loc_sp); + bool stop_at_breakpoint = true; PyObject *Frame_PyObj = SWIG_NewPointerObj((void *) &sb_frame, SWIGTYPE_p_lldb__SBFrame, 0); PyObject *Bp_Loc_PyObj = SWIG_NewPointerObj ((void *) &sb_bp_loc, SWIGTYPE_p_lldb__SBBreakpointLocation, 0); diff --git a/lldb/source/API/SBCommandInterpreter.cpp b/lldb/source/API/SBCommandInterpreter.cpp index 443545df9728..0f1914b6f955 100644 --- a/lldb/source/API/SBCommandInterpreter.cpp +++ b/lldb/source/API/SBCommandInterpreter.cpp @@ -305,4 +305,25 @@ SBCommandInterpreter::GetArgumentDescriptionAsCString (const lldb::CommandArgume } +extern "C" bool +LLDBSwigPythonBreakpointCallbackFunction +( + const char *python_function_name, + const char *session_dictionary_name, + const lldb::StackFrameSP& sb_frame, + const lldb::BreakpointLocationSP& sb_bp_loc +); +extern "C" void init_lldb(void); + +void +SBCommandInterpreter::InitializeSWIG () +{ + static bool g_initialized = false; + if (!g_initialized) + { + g_initialized = true; + ScriptInterpreter::InitializeInterpreter (init_lldb, + LLDBSwigPythonBreakpointCallbackFunction); + } +} diff --git a/lldb/source/API/SBDebugger.cpp b/lldb/source/API/SBDebugger.cpp index f871524dd064..57fff384788b 100644 --- a/lldb/source/API/SBDebugger.cpp +++ b/lldb/source/API/SBDebugger.cpp @@ -42,6 +42,8 @@ SBDebugger::Initialize () if (log) log->Printf ("SBDebugger::Initialize ()"); + SBCommandInterpreter::InitializeSWIG (); + Debugger::Initialize(); } diff --git a/lldb/source/Interpreter/ScriptInterpreter.cpp b/lldb/source/Interpreter/ScriptInterpreter.cpp index fd1e10abfbc8..7011c2e7f2b0 100644 --- a/lldb/source/Interpreter/ScriptInterpreter.cpp +++ b/lldb/source/Interpreter/ScriptInterpreter.cpp @@ -91,14 +91,16 @@ ScriptInterpreter::LanguageToString (lldb::ScriptLanguage language) } void -ScriptInterpreter::Initialize () +ScriptInterpreter::InitializeInterpreter (SWIGInitCallback python_swig_init_callback, + SWIGBreakpointCallbackFunction python_swig_breakpoint_callback) { -// ScriptInterpreterPython::Initialize (); + ScriptInterpreterPython::InitializeInterpreter (python_swig_init_callback, + python_swig_breakpoint_callback); } void -ScriptInterpreter::Terminate () +ScriptInterpreter::TerminateInterpreter () { -// ScriptInterpreterPython::Terminate (); + ScriptInterpreterPython::TerminateInterpreter (); } diff --git a/lldb/source/Interpreter/ScriptInterpreterPython.cpp b/lldb/source/Interpreter/ScriptInterpreterPython.cpp index c8dfec513cc4..10b9792f009f 100644 --- a/lldb/source/Interpreter/ScriptInterpreterPython.cpp +++ b/lldb/source/Interpreter/ScriptInterpreterPython.cpp @@ -28,22 +28,13 @@ #include "lldb/Interpreter/CommandReturnObject.h" #include "lldb/Target/Thread.h" -// This function is in the C++ output file generated by SWIG after it is -// run on all of the headers in "lldb/API/SB*.h" -extern "C" void init_lldb (void); - -extern "C" bool -LLDBSWIGPythonBreakpointCallbackFunction -( - const char *python_function_name, - const char *session_dictionary_name, - lldb::SBFrame& sb_frame, - lldb::SBBreakpointLocation& sb_bp_loc -); - using namespace lldb; using namespace lldb_private; + +static ScriptInterpreter::SWIGInitCallback g_swig_init_callback = NULL; +static ScriptInterpreter::SWIGBreakpointCallbackFunction g_swig_breakpoint_callback = NULL; + const char embedded_interpreter_string[] = "import readline\n\ import code\n\ @@ -212,7 +203,7 @@ ScriptInterpreterPython::ScriptInterpreterPython (CommandInterpreter &interprete if (!g_initialized) { g_initialized = true; - ScriptInterpreterPython::Initialize (); + ScriptInterpreterPython::InitializePrivate (); } bool safe_to_run = false; @@ -1288,38 +1279,40 @@ ScriptInterpreterPython::BreakpointCallbackFunction && python_function_name[0] != '\0') { Thread *thread = context->exe_ctx.thread; - const StackFrameSP stop_frame_sp = thread->GetStackFrameSPForStackFramePtr (context->exe_ctx.frame); + const StackFrameSP stop_frame_sp (thread->GetStackFrameSPForStackFramePtr (context->exe_ctx.frame)); BreakpointSP breakpoint_sp = target->GetBreakpointByID (break_id); - const BreakpointLocationSP bp_loc_sp = breakpoint_sp->FindLocationByID (break_loc_id); - - SBFrame sb_frame (stop_frame_sp); - SBBreakpointLocation sb_bp_loc (bp_loc_sp); - - if (sb_bp_loc.IsValid() || sb_frame.IsValid()) + if (breakpoint_sp) { - bool ret_val = true; - FILE *tmp_fh = (python_interpreter->m_dbg_stdout ? python_interpreter->m_dbg_stdout : stdout); - if (CurrentThreadHasPythonLock()) + const BreakpointLocationSP bp_loc_sp (breakpoint_sp->FindLocationByID (break_loc_id)); + + if (stop_frame_sp && bp_loc_sp) { - python_interpreter->EnterSession (); - ret_val = LLDBSWIGPythonBreakpointCallbackFunction(python_function_name, - python_interpreter->m_dictionary_name.c_str(), - sb_frame, sb_bp_loc); - python_interpreter->LeaveSession (); + bool ret_val = true; + FILE *tmp_fh = (python_interpreter->m_dbg_stdout ? python_interpreter->m_dbg_stdout : stdout); + if (CurrentThreadHasPythonLock()) + { + python_interpreter->EnterSession (); + ret_val = g_swig_breakpoint_callback (python_function_name, + python_interpreter->m_dictionary_name.c_str(), + stop_frame_sp, + bp_loc_sp); + python_interpreter->LeaveSession (); + } + else + { + while (!GetPythonLock (1)) + fprintf (tmp_fh, + "Python interpreter locked on another thread; waiting to acquire lock...\n"); + python_interpreter->EnterSession (); + ret_val = g_swig_breakpoint_callback (python_function_name, + python_interpreter->m_dictionary_name.c_str(), + stop_frame_sp, + bp_loc_sp); + python_interpreter->LeaveSession (); + ReleasePythonLock (); + } + return ret_val; } - else - { - while (!GetPythonLock (1)) - fprintf (tmp_fh, - "Python interpreter locked on another thread; waiting to acquire lock...\n"); - python_interpreter->EnterSession (); - ret_val = LLDBSWIGPythonBreakpointCallbackFunction(python_function_name, - python_interpreter->m_dictionary_name.c_str(), - sb_frame, sb_bp_loc); - python_interpreter->LeaveSession (); - ReleasePythonLock (); - } - return ret_val; } } // We currently always true so we stop in case anything goes wrong when @@ -1447,7 +1440,15 @@ ScriptInterpreterPython::RunEmbeddedPythonInterpreter (lldb::thread_arg_t baton) void -ScriptInterpreterPython::Initialize () +ScriptInterpreterPython::InitializeInterpreter (SWIGInitCallback python_swig_init_callback, + SWIGBreakpointCallbackFunction python_swig_breakpoint_callback) +{ + g_swig_init_callback = python_swig_init_callback; + g_swig_breakpoint_callback = python_swig_breakpoint_callback; +} + +void +ScriptInterpreterPython::InitializePrivate () { Timer scoped_timer (__PRETTY_FUNCTION__, __PRETTY_FUNCTION__); @@ -1506,9 +1507,9 @@ ScriptInterpreterPython::Initialize () } - // This function is in the C++ output file generated by SWIG after it is - // run on all of the headers in "lldb/API/SB*.h" - init_lldb (); + // Initialize SWIG after setting up python + assert (g_swig_init_callback != NULL); + g_swig_init_callback (); // Update the path python uses to search for modules to include the current directory. @@ -1536,20 +1537,20 @@ ScriptInterpreterPython::Initialize () stdin_tty_state.Restore(); } -void -ScriptInterpreterPython::Terminate () -{ - // We are intentionally NOT calling Py_Finalize here (this would be the logical place to call it). Calling - // Py_Finalize here causes test suite runs to seg fault: The test suite runs in Python. It registers - // SBDebugger::Terminate to be called 'at_exit'. When the test suite Python harness finishes up, it calls - // Py_Finalize, which calls all the 'at_exit' registered functions. SBDebugger::Terminate calls Debugger::Terminate, - // which calls lldb::Terminate, which calls ScriptInterpreter::Terminate, which calls - // ScriptInterpreterPython::Terminate. So if we call Py_Finalize here, we end up with Py_Finalize being called from - // within Py_Finalize, which results in a seg fault. - // - // Since this function only gets called when lldb is shutting down and going away anyway, the fact that we don't - // actually call Py_Finalize should not cause any problems (everything should shut down/go away anyway when the - // process exits). - // -// Py_Finalize (); -} +//void +//ScriptInterpreterPython::Terminate () +//{ +// // We are intentionally NOT calling Py_Finalize here (this would be the logical place to call it). Calling +// // Py_Finalize here causes test suite runs to seg fault: The test suite runs in Python. It registers +// // SBDebugger::Terminate to be called 'at_exit'. When the test suite Python harness finishes up, it calls +// // Py_Finalize, which calls all the 'at_exit' registered functions. SBDebugger::Terminate calls Debugger::Terminate, +// // which calls lldb::Terminate, which calls ScriptInterpreter::Terminate, which calls +// // ScriptInterpreterPython::Terminate. So if we call Py_Finalize here, we end up with Py_Finalize being called from +// // within Py_Finalize, which results in a seg fault. +// // +// // Since this function only gets called when lldb is shutting down and going away anyway, the fact that we don't +// // actually call Py_Finalize should not cause any problems (everything should shut down/go away anyway when the +// // process exits). +// // +//// Py_Finalize (); +//} diff --git a/lldb/source/lldb.cpp b/lldb/source/lldb.cpp index b2c2de9bc1dc..6f219d446ff2 100644 --- a/lldb/source/lldb.cpp +++ b/lldb/source/lldb.cpp @@ -17,7 +17,6 @@ #include "lldb/Core/Timer.h" #include "lldb/Host/Host.h" #include "lldb/Host/Mutex.h" -#include "lldb/Interpreter/ScriptInterpreter.h" #include "lldb/Target/Target.h" #include "lldb/Target/Thread.h" @@ -85,7 +84,6 @@ lldb_private::Initialize () ArchDefaultUnwindPlan_x86_64::Initialize(); ArchDefaultUnwindPlan_i386::Initialize(); ArchVolatileRegs_x86::Initialize(); - ScriptInterpreter::Initialize (); #if defined (__APPLE__) ABIMacOSX_i386::Initialize(); @@ -142,7 +140,6 @@ lldb_private::Terminate () ArchDefaultUnwindPlan_i386::Terminate(); ArchDefaultUnwindPlan_x86_64::Terminate(); ArchVolatileRegs_x86::Terminate(); - ScriptInterpreter::Terminate (); #if defined (__APPLE__) DynamicLoaderMacOSXDYLD::Terminate(); @@ -172,13 +169,13 @@ lldb_private::Terminate () Log::Terminate(); } -extern "C" const double LLDBVersionNumber; +extern "C" const double liblldb_coreVersionNumber; const char * lldb_private::GetVersion () { static char g_version_string[32]; if (g_version_string[0] == '\0') - ::snprintf (g_version_string, sizeof(g_version_string), "LLDB-%g", LLDBVersionNumber); + ::snprintf (g_version_string, sizeof(g_version_string), "LLDB-%g", liblldb_coreVersionNumber); return g_version_string; } diff --git a/lldb/test/abbreviation_tests/TestAbbreviations.py b/lldb/test/abbreviation_tests/TestAbbreviations.py index ca801f280ded..ed2cf5718f4c 100644 --- a/lldb/test/abbreviation_tests/TestAbbreviations.py +++ b/lldb/test/abbreviation_tests/TestAbbreviations.py @@ -47,7 +47,7 @@ class AbbreviationsTestCase(TestBase): self.expect("lo li", - startstr = "Logging categories for 'lldb':") + startstr = "Logging categories for ") self.runCmd("se se prompt Sycamore> ") self.expect("se sh prompt", diff --git a/lldb/tools/debugserver/source/RNBRemote.cpp b/lldb/tools/debugserver/source/RNBRemote.cpp index ad5640d848aa..4d061fdb7417 100644 --- a/lldb/tools/debugserver/source/RNBRemote.cpp +++ b/lldb/tools/debugserver/source/RNBRemote.cpp @@ -3351,78 +3351,6 @@ RNBRemote::HandlePacket_qHostInfo (const char *p) strm << "ptrsize:" << std::dec << sizeof(void *) << ';'; return SendPacket (strm.str()); } -// -//struct ProcessInfo -//{ -// nub_process_t pid; -// std::string name; -// std::string user; -// std::string group; -// uint32_t cpu; // mach-o cpu type -// uint32_t sub; // mach-o cpu subtype -// -// void -// Clear() -// { -// pid = 0; -// name.clear(); -// user.clear(); -// group.clear(); -// cpu = 0; -// sub = 0; -// } -//}; -// -//static bool -//GetMacOSXProcessName (ProcessInfo &proc_info, -// const char *name_match) // can be NULL -//{ -// char process_name[MAXCOMLEN * 2 + 1]; -// int name_len = ::proc_name(proc_info.pid, process_name, MAXCOMLEN * 2); -// if (name_len == 0) -// return false; -// -// if (name_match == NULL || strcmp (name_match, process_name) == 0) -// { -// proc_info.name.assign (process_name, name_len); -// return true; -// } -// proc_info.name.clear(); -// return false; -//} -// -// -//static bool -//GetMacOSXProcessCPUType (ProcessInfo &proc_info) -//{ -// // Make a new mib to stay thread safe -// int mib[CTL_MAXNAME]={0,}; -// size_t mib_len = CTL_MAXNAME; -// if (::sysctlnametomib("sysctl.proc_cputype", mib, &mib_len)) -// return false; -// -// mib[mib_len] = proc_info.pid; -// mib_len++; -// -// cpu_type_t cpu = 0; -// cpu_type_t sub = 0; -// size_t cpu_len = sizeof(cpu); -// if (::sysctl (mib, mib_len, &cpu, &cpu_len, 0, 0) == 0) -// { -// switch (cpu) -// { -// case llvm::MachO::CPUTypeI386: sub = llvm::MachO::CPUSubType_I386_ALL; break; -// case llvm::MachO::CPUTypeX86_64: sub = llvm::MachO::CPUSubType_X86_64_ALL; break; -// default: break; -// } -// proc_info.cpu = cpu; -// proc_info.sub = sub; -// return true; -// } -// proc_info.cpu = 0; -// proc_info.sub = 0; -// return false; -//} rnb_err_t RNBRemote::HandlePacket_qProcessInfo (const char *p)