Abtracted the innards of lldb-core away from the SB interface. There was some

overlap in the SWIG integration which has now been fixed by introducing
callbacks for initializing SWIG for each language (python only right now).
There was also a breakpoint command callback that called into SWIG which has
been abtracted into a callback to avoid cross over as well.

Added a new binary: lldb-platform

This will be the start of the remote platform that will use as much of the 
Host functionality to do its job so it should just work on all platforms.
It is pretty hollowed out for now, but soon it will implement a platform
using the GDB remote packets as the transport.

llvm-svn: 128053
This commit is contained in:
Greg Clayton 2011-03-22 01:14:58 +00:00
parent 348a548381
commit fc36f79170
14 changed files with 327 additions and 229 deletions

View File

@ -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);

View File

@ -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;
};

View File

@ -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);

View File

@ -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.

View File

@ -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:

View File

@ -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 = "<group>"; };
26D9FDCD12F7853F0003F2EE /* EmulateInstructionARM.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EmulateInstructionARM.h; path = Instruction/ARM/EmulateInstructionARM.h; sourceTree = "<group>"; };
26DAFD9711529BC7005A394E /* ExecutionContextScope.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ExecutionContextScope.h; path = include/lldb/Target/ExecutionContextScope.h; sourceTree = "<group>"; };
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 = "<group>"; };
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 = "<group>"; };
26DE1E6A11616C2E00A093E2 /* lldb-forward.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "lldb-forward.h"; path = "include/lldb/lldb-forward.h"; sourceTree = "<group>"; };
26DE204011618AB900A093E2 /* SBSymbolContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SBSymbolContext.h; path = include/lldb/API/SBSymbolContext.h; sourceTree = "<group>"; };
@ -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 = "<group>";
@ -2238,12 +2249,21 @@
name = ARM;
sourceTree = "<group>";
};
26DC6A1B1337FEA400FF7998 /* lldb-platform */ = {
isa = PBXGroup;
children = (
26DC6A1C1337FECA00FF7998 /* lldb-platform.cpp */,
);
name = "lldb-platform";
sourceTree = "<group>";
};
26F5C22410F3D950009D5894 /* Tools */ = {
isa = PBXGroup;
children = (
26579F55126A255E0007C5CB /* darwin-debug */,
265E9BE0115C2B8500D0DCCB /* debugserver */,
26F5C22510F3D956009D5894 /* Driver */,
26DC6A1B1337FEA400FF7998 /* lldb-platform */,
);
name = Tools;
sourceTree = "<group>";
@ -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 = (

View File

@ -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);

View File

@ -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);
}
}

View File

@ -42,6 +42,8 @@ SBDebugger::Initialize ()
if (log)
log->Printf ("SBDebugger::Initialize ()");
SBCommandInterpreter::InitializeSWIG ();
Debugger::Initialize();
}

View File

@ -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 ();
}

View File

@ -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 ();
//}

View File

@ -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;
}

View File

@ -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",

View File

@ -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)