diff options
34 files changed, 723 insertions, 336 deletions
diff --git a/lldb/include/lldb/API/SBBreakpointLocation.h b/lldb/include/lldb/API/SBBreakpointLocation.h index ba8e8715c65..ab8e56b0ddc 100644 --- a/lldb/include/lldb/API/SBBreakpointLocation.h +++ b/lldb/include/lldb/API/SBBreakpointLocation.h @@ -96,8 +96,9 @@ public: private: friend class SBBreakpoint; +#ifndef LLDB_DISABLE_PYTHON friend class lldb_private::ScriptInterpreterPython; - +#endif void SetLocation (const lldb::BreakpointLocationSP &break_loc_sp); diff --git a/lldb/include/lldb/API/SBFrame.h b/lldb/include/lldb/API/SBFrame.h index c8c6758dfd9..d351fd21376 100644 --- a/lldb/include/lldb/API/SBFrame.h +++ b/lldb/include/lldb/API/SBFrame.h @@ -205,7 +205,9 @@ protected: private: friend class SBThread; friend class SBInstruction; +#ifndef LLDB_DISABLE_PYTHON friend class lldb_private::ScriptInterpreterPython; +#endif #ifndef SWIG diff --git a/lldb/include/lldb/Core/FormatClasses.h b/lldb/include/lldb/Core/FormatClasses.h index 850ae903835..2ed21063a5b 100644 --- a/lldb/include/lldb/Core/FormatClasses.h +++ b/lldb/include/lldb/Core/FormatClasses.h @@ -11,6 +11,22 @@ #define lldb_FormatClasses_h_ // C Includes + +#ifdef LLDB_DISABLE_PYTHON + +struct PyObject; + +#else // #ifdef LLDB_DISABLE_PYTHON + +#if defined (__APPLE__) +#include <Python/Python.h> +#else +#include <Python.h> +#endif + +#endif // #ifdef LLDB_DISABLE_PYTHON + + #include <stdint.h> #include <unistd.h> @@ -262,6 +278,8 @@ public: }; +#ifndef LLDB_DISABLE_PYTHON + class SyntheticScriptProvider : public SyntheticChildren { std::string m_python_class; @@ -290,7 +308,7 @@ public: { return true; } - + class FrontEnd : public SyntheticChildrenFrontEnd { private: @@ -341,10 +359,10 @@ public: GetFrontEnd(lldb::ValueObjectSP backend) { return SyntheticChildrenFrontEnd::SharedPointer(new FrontEnd(m_python_class, backend)); - } - + } }; - + +#endif // #ifndef LLDB_DISABLE_PYTHON class SyntheticArrayView : public SyntheticChildren { public: @@ -648,6 +666,8 @@ struct StringSummaryFormat : public SummaryFormat }; +#ifndef LLDB_DISABLE_PYTHON + // Python-based summaries, running script code to show data struct ScriptSummaryFormat : public SummaryFormat { @@ -690,6 +710,8 @@ struct ScriptSummaryFormat : public SummaryFormat }; +#endif // #ifndef LLDB_DISABLE_PYTHON + } // namespace lldb_private #endif // lldb_FormatClasses_h_ diff --git a/lldb/include/lldb/Core/FormatManager.h b/lldb/include/lldb/Core/FormatManager.h index 05d525d1a08..8f56287ad2d 100644 --- a/lldb/include/lldb/Core/FormatManager.h +++ b/lldb/include/lldb/Core/FormatManager.h @@ -44,15 +44,19 @@ private: typedef FormatNavigator<ConstString, SyntheticFilter> FilterNavigator; typedef FormatNavigator<lldb::RegularExpressionSP, SyntheticFilter> RegexFilterNavigator; +#ifndef LLDB_DISABLE_PYTHON typedef FormatNavigator<ConstString, SyntheticScriptProvider> SynthNavigator; typedef FormatNavigator<lldb::RegularExpressionSP, SyntheticScriptProvider> RegexSynthNavigator; +#endif // #ifndef LLDB_DISABLE_PYTHON typedef SummaryNavigator::MapType SummaryMap; typedef RegexSummaryNavigator::MapType RegexSummaryMap; typedef FilterNavigator::MapType FilterMap; typedef RegexFilterNavigator::MapType RegexFilterMap; +#ifndef LLDB_DISABLE_PYTHON typedef SynthNavigator::MapType SynthMap; typedef RegexSynthNavigator::MapType RegexSynthMap; +#endif // #ifndef LLDB_DISABLE_PYTHON public: @@ -63,8 +67,10 @@ public: typedef RegexSummaryNavigator::SharedPointer RegexSummaryNavigatorSP; typedef FilterNavigator::SharedPointer FilterNavigatorSP; typedef RegexFilterNavigator::SharedPointer RegexFilterNavigatorSP; +#ifndef LLDB_DISABLE_PYTHON typedef SynthNavigator::SharedPointer SynthNavigatorSP; typedef RegexSynthNavigator::SharedPointer RegexSynthNavigatorSP; +#endif // #ifndef LLDB_DISABLE_PYTHON FormatCategory (IFormatChangeListener* clist, std::string name); @@ -92,7 +98,8 @@ public: { return RegexFilterNavigatorSP(m_regex_filter_nav); } - + +#ifndef LLDB_DISABLE_PYTHON SynthNavigatorSP GetSyntheticNavigator () { @@ -104,7 +111,8 @@ public: { return RegexSynthNavigatorSP(m_regex_synth_nav); } - +#endif // #ifndef LLDB_DISABLE_PYTHON + bool IsEnabled () const { @@ -153,8 +161,10 @@ private: RegexSummaryNavigator::SharedPointer m_regex_summary_nav; FilterNavigator::SharedPointer m_filter_nav; RegexFilterNavigator::SharedPointer m_regex_filter_nav; +#ifndef LLDB_DISABLE_PYTHON SynthNavigator::SharedPointer m_synth_nav; RegexSynthNavigator::SharedPointer m_regex_synth_nav; +#endif // #ifndef LLDB_DISABLE_PYTHON bool m_enabled; @@ -187,8 +197,10 @@ private: friend class FormatNavigator<ConstString, SyntheticFilter>; friend class FormatNavigator<lldb::RegularExpressionSP, SyntheticFilter>; +#ifndef LLDB_DISABLE_PYTHON friend class FormatNavigator<ConstString, SyntheticScriptProvider>; friend class FormatNavigator<lldb::RegularExpressionSP, SyntheticScriptProvider>; +#endif // #ifndef LLDB_DISABLE_PYTHON }; diff --git a/lldb/include/lldb/Expression/ClangUserExpression.h b/lldb/include/lldb/Expression/ClangUserExpression.h index 6f69cf04756..2f623869352 100644 --- a/lldb/include/lldb/Expression/ClangUserExpression.h +++ b/lldb/include/lldb/Expression/ClangUserExpression.h @@ -287,12 +287,12 @@ public: static ExecutionResults EvaluateWithError (ExecutionContext &exe_ctx, - lldb_private::ExecutionPolicy execution_policy, - bool discard_on_error, - const char *expr_cstr, - const char *expr_prefix, - lldb::ValueObjectSP &result_valobj_sp, - Error &error); + lldb_private::ExecutionPolicy execution_policy, + bool discard_on_error, + const char *expr_cstr, + const char *expr_prefix, + lldb::ValueObjectSP &result_valobj_sp, + Error &error); static const Error::ValueType kNoResult = 0x1001; ///< ValueObject::GetError() returns this if there is no result from the expression. private: @@ -301,7 +301,8 @@ private: //------------------------------------------------------------------ void - ScanContext(ExecutionContext &exe_ctx); + ScanContext (ExecutionContext &exe_ctx, + lldb_private::Error &err); bool PrepareToExecuteJITExpression (Stream &error_stream, diff --git a/lldb/include/lldb/Interpreter/ScriptInterpreterPython.h b/lldb/include/lldb/Interpreter/ScriptInterpreterPython.h index 9615f50eb08..2112e333b56 100644 --- a/lldb/include/lldb/Interpreter/ScriptInterpreterPython.h +++ b/lldb/include/lldb/Interpreter/ScriptInterpreterPython.h @@ -11,6 +11,18 @@ #ifndef liblldb_ScriptInterpreterPython_h_ #define liblldb_ScriptInterpreterPython_h_ +#ifdef LLDB_DISABLE_PYTHON + +// Python is disabled in this build + +#else + +#if defined (__APPLE__) +#include <Python/Python.h> +#else +#include <Python.h> +#endif + #include "lldb/lldb-private.h" #include "lldb/Interpreter/ScriptInterpreter.h" #include "lldb/Core/InputReader.h" @@ -232,5 +244,6 @@ private: }; } // namespace lldb_private +#endif // #ifdef LLDB_DISABLE_PYTHON #endif // #ifndef liblldb_ScriptInterpreterPython_h_ diff --git a/lldb/include/lldb/lldb-forward-rtti.h b/lldb/include/lldb/lldb-forward-rtti.h index 37b757ed9cf..63b1d6fa8da 100644 --- a/lldb/include/lldb/lldb-forward-rtti.h +++ b/lldb/include/lldb/lldb-forward-rtti.h @@ -59,7 +59,9 @@ namespace lldb { typedef SharedPtr<lldb_private::RegularExpression>::Type RegularExpressionSP; typedef SharedPtr<lldb_private::Section>::Type SectionSP; typedef SharedPtr<lldb_private::SearchFilter>::Type SearchFilterSP; +#ifndef LLDB_DISABLE_PYTHON typedef SharedPtr<lldb_private::ScriptSummaryFormat>::Type ScriptFormatSP; +#endif // #ifndef LLDB_DISABLE_PYTHON typedef IntrusiveSharedPtr<lldb_private::StackFrame>::Type StackFrameSP; typedef SharedPtr<lldb_private::StackFrameList>::Type StackFrameListSP; typedef SharedPtr<lldb_private::StopInfo>::Type StopInfoSP; diff --git a/lldb/include/lldb/lldb-forward.h b/lldb/include/lldb/lldb-forward.h index c1d199287c6..79ce7b82cf3 100644 --- a/lldb/include/lldb/lldb-forward.h +++ b/lldb/include/lldb/lldb-forward.h @@ -126,7 +126,10 @@ class RegularExpression; class Scalar; struct ScriptSummaryFormat; class ScriptInterpreter; +#ifndef LLDB_DISABLE_PYTHON class ScriptInterpreterPython; +class ScriptSummaryFormat; +#endif // #ifndef LLDB_DISABLE_PYTHON class SearchFilter; class Section; class SectionImpl; @@ -157,7 +160,9 @@ class SymbolVendor; class Symtab; class SyntheticChildren; class SyntheticChildrenFrontEnd; +#ifndef LLDB_DISABLE_PYTHON class SyntheticScriptProvider; +#endif // #ifndef LLDB_DISABLE_PYTHON class Target; class TargetList; class Thread; diff --git a/lldb/lldb.xcodeproj/project.pbxproj b/lldb/lldb.xcodeproj/project.pbxproj index a0650178ba4..0165df645b3 100644 --- a/lldb/lldb.xcodeproj/project.pbxproj +++ b/lldb/lldb.xcodeproj/project.pbxproj @@ -7,7 +7,6 @@ objects = { /* Begin PBXBuildFile section */ - 260C876A10F538E700BB2B04 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 260C876910F538E700BB2B04 /* Foundation.framework */; }; 260E07C6136FA69E00CF21D3 /* OptionGroupUUID.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 260E07C5136FA69E00CF21D3 /* OptionGroupUUID.cpp */; }; 260E07C8136FAB9200CF21D3 /* OptionGroupFile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 260E07C7136FAB9200CF21D3 /* OptionGroupFile.cpp */; }; 261744781168585B005ADD65 /* SBType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 261744771168585B005ADD65 /* SBType.cpp */; }; @@ -29,7 +28,7 @@ 265205A813D3E3F700132FE2 /* RegisterContextKDP_arm.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 265205A213D3E3F700132FE2 /* RegisterContextKDP_arm.cpp */; }; 265205AA13D3E3F700132FE2 /* RegisterContextKDP_i386.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 265205A413D3E3F700132FE2 /* RegisterContextKDP_i386.cpp */; }; 265205AC13D3E3F700132FE2 /* RegisterContextKDP_x86_64.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 265205A613D3E3F700132FE2 /* RegisterContextKDP_x86_64.cpp */; }; - 265ABF6310F42EE900531910 /* DebugSymbols.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 265ABF6210F42EE900531910 /* DebugSymbols.framework */; }; + 2660AAB914622483003A9694 /* LLDBWrapPython.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26A4EEB511682AAC007A372A /* LLDBWrapPython.cpp */; }; 26651A18133BF9E0005B64B7 /* Opcode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26651A17133BF9DF005B64B7 /* Opcode.cpp */; }; 266603CA1345B5A8004DA8B6 /* ConnectionSharedMemory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 266603C91345B5A8004DA8B6 /* ConnectionSharedMemory.cpp */; }; 2668020E115FD12C008E1FE4 /* lldb-defines.h in Headers */ = {isa = PBXBuildFile; fileRef = 26BC7C2510F1B3BC00F91463 /* lldb-defines.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -53,9 +52,6 @@ 2668022C115FD13D008E1FE4 /* SBTarget.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A9831081125FC5800A56CB0 /* SBTarget.h */; settings = {ATTRIBUTES = (Public, ); }; }; 2668022E115FD13D008E1FE4 /* SBThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A98310A1125FC5800A56CB0 /* SBThread.h */; settings = {ATTRIBUTES = (Public, ); }; }; 2668022F115FD19D008E1FE4 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26F5C39010F3FA26009D5894 /* CoreFoundation.framework */; }; - 26680230115FD19E008E1FE4 /* DebugSymbols.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 265ABF6210F42EE900531910 /* DebugSymbols.framework */; }; - 26680231115FD1A0008E1FE4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 260C876910F538E700BB2B04 /* Foundation.framework */; }; - 26680232115FD1A4008E1FE4 /* libpython.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 26F5C32410F3DF23009D5894 /* libpython.dylib */; }; 26680233115FD1A7008E1FE4 /* libobjc.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 26F5C37410F3F61B009D5894 /* libobjc.dylib */; }; 26680324116005D9008E1FE4 /* SBThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A9831091125FC5800A56CB0 /* SBThread.cpp */; }; 26680326116005DB008E1FE4 /* SBTarget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A9831071125FC5800A56CB0 /* SBTarget.cpp */; }; @@ -342,13 +338,8 @@ 2697A54D133A6305004E4240 /* PlatformDarwin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2697A54B133A6305004E4240 /* PlatformDarwin.cpp */; }; 26A69C5F137A17A500262477 /* RegisterValue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26C6886E137880C400407EDF /* RegisterValue.cpp */; }; 26A7A035135E6E4200FB369E /* NamedOptionValue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26A7A034135E6E4200FB369E /* NamedOptionValue.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 */; }; 26B42C4D1187ABA50079C8C8 /* LLDB.h in Headers */ = {isa = PBXBuildFile; fileRef = 26B42C4C1187ABA50079C8C8 /* LLDB.h */; settings = {ATTRIBUTES = (Public, ); }; }; 26B8283D142D01E9002DBC64 /* SBSection.h in Headers */ = {isa = PBXBuildFile; fileRef = 26B8283C142D01E9002DBC64 /* SBSection.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -392,11 +383,8 @@ 26F4A21C13FBA31A0064B613 /* ThreadMemory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26F4A21A13FBA31A0064B613 /* ThreadMemory.cpp */; }; 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 */; }; 26F5C32C10F3DFDD009D5894 /* libedit.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 26F5C32A10F3DFDD009D5894 /* libedit.dylib */; }; 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 */; }; 26F73062139D8FDB00FD51C7 /* History.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26F73061139D8FDB00FD51C7 /* History.cpp */; }; 494260DA14579144003C1C78 /* VerifyDecl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 494260D914579144003C1C78 /* VerifyDecl.cpp */; }; 496B015B1406DEB100F830D5 /* IRInterpreter.h in Headers */ = {isa = PBXBuildFile; fileRef = 496B015A1406DEB100F830D5 /* IRInterpreter.h */; }; @@ -405,7 +393,6 @@ 49A71FE8141FFACF00D59478 /* DataEncoder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 268ED0A4140FF54200DE830F /* DataEncoder.cpp */; }; 49C8507C1384A786007DB519 /* ProcessDataAllocator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 49C850781384A0CA007DB519 /* ProcessDataAllocator.cpp */; }; 49D8FB3913B5598F00411094 /* ClangASTImporter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 49D8FB3513B558DE00411094 /* ClangASTImporter.cpp */; }; - 4C74CB6312288704006A8171 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4C74CB6212288704006A8171 /* Carbon.framework */; }; 4CAA56131422D96A001FFA01 /* BreakpointResolverFileRegex.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CAA56121422D96A001FFA01 /* BreakpointResolverFileRegex.h */; }; 4CAA56151422D986001FFA01 /* BreakpointResolverFileRegex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CAA56141422D986001FFA01 /* BreakpointResolverFileRegex.cpp */; }; 4CABA9E0134A8BCD00539BDD /* ValueObjectMemory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CABA9DF134A8BCD00539BDD /* ValueObjectMemory.cpp */; }; @@ -1391,11 +1378,7 @@ files = ( 268901161335BBC300698AC0 /* liblldb-core.a in Frameworks */, 2668022F115FD19D008E1FE4 /* CoreFoundation.framework in Frameworks */, - 26680230115FD19E008E1FE4 /* DebugSymbols.framework in Frameworks */, - 26680231115FD1A0008E1FE4 /* Foundation.framework in Frameworks */, - 26680232115FD1A4008E1FE4 /* libpython.dylib in Frameworks */, 26680233115FD1A7008E1FE4 /* libobjc.dylib in Frameworks */, - 4C74CB6312288704006A8171 /* Carbon.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1412,11 +1395,7 @@ 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; }; @@ -1424,13 +1403,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 26F5C32510F3DF23009D5894 /* libpython.dylib in Frameworks */, 26F5C32C10F3DFDD009D5894 /* libedit.dylib in Frameworks */, 26F5C32D10F3DFDD009D5894 /* libtermcap.dylib in Frameworks */, - 26F5C37510F3F61B009D5894 /* libobjc.dylib in Frameworks */, - 26F5C39110F3FA26009D5894 /* CoreFoundation.framework in Frameworks */, - 265ABF6310F42EE900531910 /* DebugSymbols.framework in Frameworks */, - 260C876A10F538E700BB2B04 /* Foundation.framework in Frameworks */, 2668035C11601108008E1FE4 /* LLDB.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -3172,12 +3146,12 @@ 9AA69DB1118A024600D753A0 /* SBInputReader.cpp in Sources */, 268F9D55123AA16600B91E9B /* SBSymbolContextList.cpp in Sources */, 26C72C961243229A0068DC16 /* SBStream.cpp in Sources */, - 26B1FA1413380E61002886E2 /* LLDBWrapPython.cpp in Sources */, 9443B122140C18C40013457C /* SBData.cpp in Sources */, 4CAA56151422D986001FFA01 /* BreakpointResolverFileRegex.cpp in Sources */, 4CF52AF8142829390051E832 /* SBFileSpecList.cpp in Sources */, 26B82840142D020F002DBC64 /* SBSection.cpp in Sources */, B2A58724143119D50092BFBA /* SBWatchpoint.cpp in Sources */, + 2660AAB914622483003A9694 /* LLDBWrapPython.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3582,7 +3556,12 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + ARCHS = "$(NATIVE_ARCH)"; + "ARCHS[sdk=iphoneos*]" = armv7; + "ARCHS[sdk=macosx*]" = ( + x86_64, + i386, + ); DEBUG_INFORMATION_FORMAT = dwarf; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_OPTIMIZATION_LEVEL = 0; @@ -3591,6 +3570,12 @@ __STDC_LIMIT_MACROS, LLDB_CONFIGURATION_DEBUG, ); + "GCC_PREPROCESSOR_DEFINITIONS[sdk=iphoneos*][arch=*]" = ( + __STDC_CONSTANT_MACROS, + __STDC_LIMIT_MACROS, + LLDB_CONFIGURATION_DEBUG, + LLDB_DISABLE_PYTHON, + ); GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES; GCC_WARN_ABOUT_MISSING_NEWLINE = YES; @@ -3604,16 +3589,16 @@ GCC_WARN_UNUSED_LABEL = YES; GCC_WARN_UNUSED_VALUE = YES; GCC_WARN_UNUSED_VARIABLE = YES; - LLVM_BUILD_DIR = "$(SRCROOT)/llvm"; - LLVM_BUILD_DIR_ARCH = ""; - LLVM_CONFIGURATION = Release; + LLVM_BUILD_DIR = "$(OBJROOT)/llvm"; + LLVM_BUILD_DIR_ARCH = "$(CURRENT_ARCH)/"; + LLVM_CONFIGURATION = "Release+Debug"; LLVM_SOURCE_DIR = "$(SRCROOT)/llvm"; ONLY_ACTIVE_ARCH = YES; OTHER_CFLAGS = ( "-flimit-debug-info", "-Wparentheses", ); - VALID_ARCHS = "x86_64 i386"; + VALID_ARCHS = "armv4t armv5 armv6 armv7 i386 ppc ppc64 ppc7400 ppc970 x86_64"; }; name = Debug; }; @@ -3621,7 +3606,12 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + ARCHS = "$(NATIVE_ARCH)"; + "ARCHS[sdk=iphoneos*]" = armv7; + "ARCHS[sdk=macosx*]" = ( + x86_64, + i386, + ); DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_PREPROCESSOR_DEFINITIONS = ( @@ -3629,6 +3619,12 @@ __STDC_LIMIT_MACROS, LLDB_CONFIGURATION_RELEASE, ); + "GCC_PREPROCESSOR_DEFINITIONS[sdk=iphoneos*][arch=*]" = ( + __STDC_CONSTANT_MACROS, + __STDC_LIMIT_MACROS, + LLDB_CONFIGURATION_RELEASE, + LLDB_DISABLE_PYTHON, + ); GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES; GCC_WARN_ABOUT_MISSING_NEWLINE = YES; @@ -3642,15 +3638,15 @@ GCC_WARN_UNUSED_LABEL = YES; GCC_WARN_UNUSED_VALUE = YES; GCC_WARN_UNUSED_VARIABLE = YES; - LLVM_BUILD_DIR = "$(SRCROOT)/llvm"; - LLVM_BUILD_DIR_ARCH = ""; - LLVM_CONFIGURATION = Release; + LLVM_BUILD_DIR = "$(OBJROOT)/llvm"; + LLVM_BUILD_DIR_ARCH = "$(CURRENT_ARCH)/"; + LLVM_CONFIGURATION = "Release+Debug"; LLVM_SOURCE_DIR = "$(SRCROOT)/llvm"; OTHER_CFLAGS = ( "-flimit-debug-info", "-Wparentheses", ); - VALID_ARCHS = "x86_64 i386"; + VALID_ARCHS = "armv4t armv5 armv6 armv7 i386 ppc ppc64 ppc7400 ppc970 x86_64"; }; name = Release; }; @@ -3707,18 +3703,13 @@ GCC_ENABLE_OBJC_GC = supported; GCC_INLINES_ARE_PRIVATE_EXTERN = NO; GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - __STDC_CONSTANT_MACROS, - __STDC_LIMIT_MACROS, - LLDB_CONFIGURATION_DEBUG, - ); HEADER_SEARCH_PATHS = ""; INFOPLIST_FILE = "resources/LLDB-Info.plist"; INSTALL_PATH = "$(DEVELOPER_DIR)/Library/PrivateFrameworks"; - LD_DYLIB_INSTALL_NAME = "@rpath/LLDB.framework/Versions/A/LLDB"; + LD_DYLIB_INSTALL_NAME = /Developer/Library/PrivateFrameworks/LLDB.framework/LLDB; LIBRARY_SEARCH_PATHS = ( + "$(LLVM_BUILD_DIR)/$(LLVM_BUILD_DIR_ARCH)", "$(inherited)", - "$(LLVM_BUILD_DIR)", ); OTHER_CPLUSPLUSFLAGS = ( "-fno-rtti", @@ -3727,6 +3718,12 @@ ); OTHER_LDFLAGS = ( "-framework", + Carbon, + "-framework", + DebugSymbols, + "-lpython", + "-lllvmclang", + "-framework", Foundation, "-framework", AppKit, @@ -3734,6 +3731,16 @@ "-t", "-Wl,-v", ); + "OTHER_LDFLAGS[sdk=iphoneos*][arch=*]" = ( + "-lllvmclang", + "-v", + "-t", + "-Wl,-v", + "-framework", + UIKit, + "-framework", + Foundation, + ); PRODUCT_NAME = LLDB; USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include $(SRCROOT)/source $(LLVM_SOURCE_DIR)/include $(LLVM_SOURCE_DIR)/tools/clang/include $(LLVM_BUILD_DIR)/$(LLVM_BUILD_DIR_ARCH)/include $(LLVM_BUILD_DIR)/$(LLVM_BUILD_DIR_ARCH)/tools/clang/include"; VERSIONING_SYSTEM = "apple-generic"; @@ -3757,18 +3764,13 @@ FRAMEWORK_VERSION = A; GCC_ENABLE_OBJC_GC = supported; GCC_INLINES_ARE_PRIVATE_EXTERN = NO; - GCC_PREPROCESSOR_DEFINITIONS = ( - __STDC_CONSTANT_MACROS, - __STDC_LIMIT_MACROS, - LLDB_CONFIGURATION_RELEASE, - ); HEADER_SEARCH_PATHS = ""; INFOPLIST_FILE = "resources/LLDB-Info.plist"; INSTALL_PATH = "$(DEVELOPER_DIR)/Library/PrivateFrameworks"; - LD_DYLIB_INSTALL_NAME = "@rpath/LLDB.framework/Versions/A/LLDB"; + LD_DYLIB_INSTALL_NAME = /Developer/Library/PrivateFrameworks/LLDB.framework/LLDB; LIBRARY_SEARCH_PATHS = ( + "$(LLVM_BUILD_DIR)/$(LLVM_BUILD_DIR_ARCH)", "$(inherited)", - "$(LLVM_BUILD_DIR)", ); OTHER_CPLUSPLUSFLAGS = ( "-fno-rtti", @@ -3777,6 +3779,12 @@ ); OTHER_LDFLAGS = ( "-framework", + Carbon, + "-framework", + DebugSymbols, + "-lpython", + "-lllvmclang", + "-framework", Foundation, "-framework", AppKit, @@ -3784,6 +3792,16 @@ "-t", "-Wl,-v", ); + "OTHER_LDFLAGS[sdk=iphoneos*][arch=*]" = ( + "-lllvmclang", + "-v", + "-t", + "-Wl,-v", + "-framework", + UIKit, + "-framework", + Foundation, + ); PRODUCT_NAME = LLDB; USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include $(SRCROOT)/source $(LLVM_SOURCE_DIR)/include $(LLVM_SOURCE_DIR)/tools/clang/include $(LLVM_BUILD_DIR)/$(LLVM_BUILD_DIR_ARCH)/include $(LLVM_BUILD_DIR)/$(LLVM_BUILD_DIR_ARCH)/tools/clang/include"; VERSIONING_SYSTEM = "apple-generic"; @@ -3803,16 +3821,7 @@ ); GCC_ENABLE_OBJC_GC = supported; GCC_INLINES_ARE_PRIVATE_EXTERN = NO; - GCC_PREPROCESSOR_DEFINITIONS = ( - __STDC_CONSTANT_MACROS, - __STDC_LIMIT_MACROS, - LLDB_CONFIGURATION_DEBUG, - ); LD_DYLIB_INSTALL_NAME = "$(DEVELOPER_DIR)/Library/PrivateFrameworks/LLDB.framework/Resources/lldb-core.a"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(LLVM_BUILD_DIR)", - ); MACH_O_TYPE = staticlib; MACOSX_DEPLOYMENT_TARGET = 10.6; OTHER_CPLUSPLUSFLAGS = ( @@ -3820,7 +3829,7 @@ "-Wglobal-constructors", "$(OTHER_CFLAGS)", ); - OTHER_LDFLAGS = "-lllvmclang"; + OTHER_LDFLAGS = ""; PRODUCT_NAME = "lib$(TARGET_NAME)"; STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = static; USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include $(SRCROOT)/source $(LLVM_SOURCE_DIR)/include $(LLVM_SOURCE_DIR)/tools/clang/include $(LLVM_BUILD_DIR)/$(LLVM_BUILD_DIR_ARCH)/include $(LLVM_BUILD_DIR)/$(LLVM_BUILD_DIR_ARCH)/tools/clang/include"; @@ -3841,16 +3850,7 @@ ); GCC_ENABLE_OBJC_GC = supported; GCC_INLINES_ARE_PRIVATE_EXTERN = NO; - GCC_PREPROCESSOR_DEFINITIONS = ( - __STDC_CONSTANT_MACROS, - __STDC_LIMIT_MACROS, - LLDB_CONFIGURATION_RELEASE, - ); LD_DYLIB_INSTALL_NAME = "$(DEVELOPER_DIR)/Library/PrivateFrameworks/LLDB.framework/Resources/lldb-core.a"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(LLVM_BUILD_DIR)", - ); MACH_O_TYPE = staticlib; MACOSX_DEPLOYMENT_TARGET = 10.6; OTHER_CPLUSPLUSFLAGS = ( @@ -3858,7 +3858,7 @@ "-Wglobal-constructors", "$(OTHER_CFLAGS)", ); - OTHER_LDFLAGS = "-lllvmclang"; + OTHER_LDFLAGS = ""; PRODUCT_NAME = "lib$(TARGET_NAME)"; STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = static; USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include $(SRCROOT)/source $(LLVM_SOURCE_DIR)/include $(LLVM_SOURCE_DIR)/tools/clang/include $(LLVM_BUILD_DIR)/$(LLVM_BUILD_DIR_ARCH)/include $(LLVM_BUILD_DIR)/$(LLVM_BUILD_DIR_ARCH)/tools/clang/include"; @@ -3879,16 +3879,7 @@ ); GCC_ENABLE_OBJC_GC = supported; GCC_INLINES_ARE_PRIVATE_EXTERN = NO; - GCC_PREPROCESSOR_DEFINITIONS = ( - __STDC_CONSTANT_MACROS, - __STDC_LIMIT_MACROS, - LLDB_CONFIGURATION_BUILD_AND_INTEGRATION, - ); LD_DYLIB_INSTALL_NAME = "$(DEVELOPER_DIR)/Library/PrivateFrameworks/LLDB.framework/Resources/lldb-core.a"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "$(LLVM_BUILD_DIR)", - ); MACH_O_TYPE = staticlib; MACOSX_DEPLOYMENT_TARGET = 10.6; OTHER_CPLUSPLUSFLAGS = ( @@ -3896,7 +3887,7 @@ "-Wglobal-constructors", "$(OTHER_CFLAGS)", ); - OTHER_LDFLAGS = "-lllvmclang"; + OTHER_LDFLAGS = ""; PRODUCT_NAME = "lib$(TARGET_NAME)"; STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = static; USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include $(SRCROOT)/source $(LLVM_SOURCE_DIR)/include $(LLVM_SOURCE_DIR)/tools/clang/include $(LLVM_BUILD_DIR)/$(LLVM_BUILD_DIR_ARCH)/include $(LLVM_BUILD_DIR)/$(LLVM_BUILD_DIR_ARCH)/tools/clang/include"; @@ -3908,7 +3899,12 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + ARCHS = "$(NATIVE_ARCH)"; + "ARCHS[sdk=iphoneos*]" = armv7; + "ARCHS[sdk=macosx*]" = ( + x86_64, + i386, + ); DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_PREPROCESSOR_DEFINITIONS = ( @@ -3916,6 +3912,12 @@ __STDC_LIMIT_MACROS, LLDB_CONFIGURATION_BUILD_AND_INTEGRATION, ); + "GCC_PREPROCESSOR_DEFINITIONS[sdk=iphoneos*][arch=*]" = ( + __STDC_CONSTANT_MACROS, + __STDC_LIMIT_MACROS, + LLDB_CONFIGURATION_BUILD_AND_INTEGRATION, + LLDB_DISABLE_PYTHON, + ); GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES; GCC_WARN_ABOUT_MISSING_NEWLINE = YES; @@ -3931,13 +3933,13 @@ GCC_WARN_UNUSED_VARIABLE = YES; LLVM_BUILD_DIR = "$(OBJROOT)/llvm"; LLVM_BUILD_DIR_ARCH = "$(CURRENT_ARCH)/"; - LLVM_CONFIGURATION = Release; + LLVM_CONFIGURATION = "Release+Debug"; LLVM_SOURCE_DIR = "$(SRCROOT)/llvm"; OTHER_CFLAGS = ( "-flimit-debug-info", "-Wparentheses", ); - VALID_ARCHS = "x86_64 i386"; + VALID_ARCHS = "armv4t armv5 armv6 armv7 i386 ppc ppc64 ppc7400 ppc970 x86_64"; }; name = BuildAndIntegration; }; @@ -3986,18 +3988,13 @@ FRAMEWORK_VERSION = A; GCC_ENABLE_OBJC_GC = supported; GCC_INLINES_ARE_PRIVATE_EXTERN = NO; - GCC_PREPROCESSOR_DEFINITIONS = ( - __STDC_CONSTANT_MACROS, - __STDC_LIMIT_MACROS, - LLDB_CONFIGURATION_BUILD_AND_INTEGRATION, - ); HEADER_SEARCH_PATHS = ""; INFOPLIST_FILE = "resources/LLDB-Info.plist"; INSTALL_PATH = "$(DEVELOPER_DIR)/Library/PrivateFrameworks"; - LD_DYLIB_INSTALL_NAME = "@rpath/LLDB.framework/Versions/A/LLDB"; + LD_DYLIB_INSTALL_NAME = /Developer/Library/PrivateFrameworks/LLDB.framework/LLDB; LIBRARY_SEARCH_PATHS = ( + "$(LLVM_BUILD_DIR)/$(LLVM_BUILD_DIR_ARCH)", "$(inherited)", - "$(LLVM_BUILD_DIR)", ); OTHER_CPLUSPLUSFLAGS = ( "-fno-rtti", @@ -4006,6 +4003,12 @@ ); OTHER_LDFLAGS = ( "-framework", + Carbon, + "-framework", + DebugSymbols, + "-lpython", + "-lllvmclang", + "-framework", Foundation, "-framework", AppKit, @@ -4013,6 +4016,16 @@ "-t", "-Wl,-v", ); + "OTHER_LDFLAGS[sdk=iphoneos*][arch=*]" = ( + "-lllvmclang", + "-v", + "-t", + "-Wl,-v", + "-framework", + UIKit, + "-framework", + Foundation, + ); PRODUCT_NAME = LLDB; USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include $(SRCROOT)/source $(LLVM_SOURCE_DIR)/include $(LLVM_SOURCE_DIR)/tools/clang/include $(LLVM_BUILD_DIR)/$(LLVM_BUILD_DIR_ARCH)/include $(LLVM_BUILD_DIR)/$(LLVM_BUILD_DIR_ARCH)/tools/clang/include"; VERSIONING_SYSTEM = "apple-generic"; @@ -4023,6 +4036,7 @@ isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_IDENTITY = lldb_codesign; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; COPY_PHASE_STRIP = NO; DEAD_CODE_STRIPPING = YES; FRAMEWORK_SEARCH_PATHS = ( @@ -4034,12 +4048,49 @@ GCC_INLINES_ARE_PRIVATE_EXTERN = NO; GCC_OPTIMIZATION_LEVEL = 0; GCC_SYMBOLS_PRIVATE_EXTERN = NO; + INFOPLIST_PREPROCESSOR_DEFINITIONS = ( + "-lobjc", + "-lpython", + "-framework", + DebugSymbols, + "-framework", + Carbon, + "-framework", + Foundation, + "-framework", + AppKit, + "-v", + "-t", + "-Wl,-v", + ); INSTALL_PATH = "$(DEVELOPER_DIR)/usr/bin"; + LIBRARY_SEARCH_PATHS = ( + "$(LLVM_BUILD_DIR)/$(LLVM_BUILD_DIR_ARCH)", + "$(inherited)", + ); + LLVM_CONFIGURATION = Release; + "LLVM_CONFIGURATION[sdk=iphoneos*][arch=*]" = "Release+Debug"; OTHER_LDFLAGS = ( + "-lllvmclang", + "-lpython", + "-framework", + DebugSymbols, + "-framework", + Carbon, "-framework", Foundation, "-framework", AppKit, + "-v", + "-t", + "-Wl,-v", + ); + "OTHER_LDFLAGS[sdk=iphoneos*][arch=*]" = ( + "-lllvmclang", + "-framework", + Foundation, + "-framework", + UIKit, ); PRODUCT_NAME = "lldb-platform"; PROVISIONING_PROFILE = ""; @@ -4051,6 +4102,7 @@ isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_IDENTITY = lldb_codesign; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; COPY_PHASE_STRIP = YES; DEAD_CODE_STRIPPING = YES; FRAMEWORK_SEARCH_PATHS = ( @@ -4060,12 +4112,49 @@ GCC_ENABLE_CPP_RTTI = NO; GCC_INLINES_ARE_PRIVATE_EXTERN = NO; GCC_SYMBOLS_PRIVATE_EXTERN = NO; + INFOPLIST_PREPROCESSOR_DEFINITIONS = ( + "-lobjc", + "-lpython", + "-framework", + DebugSymbols, + "-framework", + Carbon, + "-framework", + Foundation, + "-framework", + AppKit, + "-v", + "-t", + "-Wl,-v", + ); INSTALL_PATH = "$(DEVELOPER_DIR)/usr/bin"; + LIBRARY_SEARCH_PATHS = ( + "$(LLVM_BUILD_DIR)/$(LLVM_BUILD_DIR_ARCH)", + "$(inherited)", + ); + LLVM_CONFIGURATION = Release; + "LLVM_CONFIGURATION[sdk=iphoneos*][arch=*]" = "Release+Debug"; OTHER_LDFLAGS = ( + "-lllvmclang", + "-lpython", + "-framework", + DebugSymbols, + "-framework", + Carbon, "-framework", Foundation, "-framework", AppKit, + "-v", + "-t", + "-Wl,-v", + ); + "OTHER_LDFLAGS[sdk=iphoneos*][arch=*]" = ( + "-lllvmclang", + "-framework", + Foundation, + "-framework", + UIKit, ); PRODUCT_NAME = "lldb-platform"; PROVISIONING_PROFILE = ""; @@ -4084,12 +4173,49 @@ GCC_ENABLE_CPP_RTTI = NO; GCC_INLINES_ARE_PRIVATE_EXTERN = NO; GCC_SYMBOLS_PRIVATE_EXTERN = NO; + INFOPLIST_PREPROCESSOR_DEFINITIONS = ( + "-lobjc", + "-lpython", + "-framework", + DebugSymbols, + "-framework", + Carbon, + "-framework", + Foundation, + "-framework", + AppKit, + "-v", + "-t", + "-Wl,-v", + ); INSTALL_PATH = "$(DEVELOPER_DIR)/usr/bin"; + LIBRARY_SEARCH_PATHS = ( + "$(LLVM_BUILD_DIR)/$(LLVM_BUILD_DIR_ARCH)", + "$(inherited)", + ); + LLVM_CONFIGURATION = Release; + "LLVM_CONFIGURATION[sdk=iphoneos*][arch=*]" = "Release+Debug"; OTHER_LDFLAGS = ( + "-lllvmclang", + "-lpython", + "-framework", + DebugSymbols, + "-framework", + Carbon, "-framework", Foundation, "-framework", AppKit, + "-v", + "-t", + "-Wl,-v", + ); + "OTHER_LDFLAGS[sdk=iphoneos*][arch=*]" = ( + "-lllvmclang", + "-framework", + Foundation, + "-framework", + UIKit, ); PRODUCT_NAME = "lldb-platform"; USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/include $(SRCROOT)/source $(LLVM_SOURCE_DIR)/include $(LLVM_SOURCE_DIR)/tools/clang/include $(LLVM_BUILD_DIR)/$(LLVM_BUILD_DIR_ARCH)/include $(LLVM_BUILD_DIR)/$(LLVM_BUILD_DIR_ARCH)/tools/clang/include"; diff --git a/lldb/scripts/Python/build-swig-Python.sh b/lldb/scripts/Python/build-swig-Python.sh index d7191221a77..557f63a16d4 100755 --- a/lldb/scripts/Python/build-swig-Python.sh +++ b/lldb/scripts/Python/build-swig-Python.sh @@ -23,6 +23,8 @@ swig_input_file=${SRC_ROOT}/scripts/lldb.swig swig_python_extensions=${SRC_ROOT}/scripts/Python/python-extensions.swig swig_python_wrapper=${SRC_ROOT}/scripts/Python/python-wrapper.swig +if [ "x$SDKROOT" = "x" ] ; then + if [ -n "$debug_flag" -a "$debug_flag" == "-debug" ] then Debug=1 @@ -265,3 +267,9 @@ then mv "${swig_output_file}.edited" ${swig_output_file} fi fi + +else + # SDKROOT was not empty, which currently means iOS cross build where python is disabled + rm -rf ${swig_output_file} + touch ${swig_output_file} +fi diff --git a/lldb/scripts/Python/finish-swig-Python-LLDB.sh b/lldb/scripts/Python/finish-swig-Python-LLDB.sh index 562250ce609..f8b3a004f29 100755 --- a/lldb/scripts/Python/finish-swig-Python-LLDB.sh +++ b/lldb/scripts/Python/finish-swig-Python-LLDB.sh @@ -33,6 +33,10 @@ CONFIG_BUILD_DIR=$3 PYTHON_INSTALL_DIR=$4 debug_flag=$5 +# Make sure SDKROOT is not set, since if it is this is an iOS build where python +# is disabled +if [ "x$SDKROOT" = "x" ] ; then + if [ -n "$debug_flag" -a "$debug_flag" == "-debug" ] then Debug=1 @@ -180,5 +184,7 @@ else fi fi +fi + exit 0 diff --git a/lldb/scripts/build-llvm.pl b/lldb/scripts/build-llvm.pl index 834920f7e8f..c903203bb56 100644 --- a/lldb/scripts/build-llvm.pl +++ b/lldb/scripts/build-llvm.pl @@ -18,15 +18,33 @@ our $llvm_dstroot = $ENV{SCRIPT_INPUT_FILE_1}; our $llvm_clang_outfile = $ENV{SCRIPT_OUTPUT_FILE_0}; our ($llvm_clang_basename, $llvm_clang_dirname) = fileparse ($llvm_clang_outfile); -our @llvm_clang_slices; # paths to the single architecture static libraries (archives) our $llvm_configuration = $ENV{LLVM_CONFIGURATION}; our $llvm_revision = "143472"; our $clang_revision = "143472"; -our $llvm_source_dir = "$ENV{SRCROOT}"; +our $SRCROOT = "$ENV{SRCROOT}"; +our $llvm_dstroot_zip = "$SRCROOT/llvm.zip"; our @archs = split (/\s+/, $ENV{ARCHS}); +my $os_release = 11; + +our %llvm_config_info = ( + 'Debug' => { configure_options => '--disable-optimized --disable-assertions', make_options => 'DEBUG_SYMBOLS=1'}, + 'Debug+Asserts' => { configure_options => '--disable-optimized --enable-assertions' , make_options => 'DEBUG_SYMBOLS=1'}, + 'Release' => { configure_options => '--enable-optimized --disable-assertions' , make_options => ''}, + 'Release+Debug' => { configure_options => '--enable-optimized --disable-assertions' , make_options => 'DEBUG_SYMBOLS=1'}, +); + +our $llvm_config_href = undef; +if (exists $llvm_config_info{"$llvm_configuration"}) +{ + $llvm_config_href = $llvm_config_info{$llvm_configuration}; +} +else +{ + die "Unsupported LLVM configuration: '$llvm_configuration'\n"; +} our @archive_files = ( "$llvm_configuration/lib/libclang.a", @@ -85,37 +103,71 @@ our @archive_files = ( "$llvm_configuration/lib/libLLVMX86Utils.a", ); -if ($ENV{CONFIGURATION} ne "BuildAndIntegration" and -e "$llvm_srcroot/lib") +if (-e "$llvm_srcroot/lib") { - print "Using standard LLVM build directory...\n"; - # LLVM in the "lldb" root is a symlink which indicates we are using a - # standard LLVM build directory where everything is built into the - # same folder - create_single_llvm_arhive_for_arch ($llvm_dstroot, 1); - my $llvm_dstroot_archive = "$llvm_dstroot/$llvm_clang_basename"; - push @llvm_clang_slices, $llvm_dstroot_archive; - create_dstroot_file ($llvm_clang_basename, $llvm_clang_dirname, \@llvm_clang_slices, $llvm_clang_basename); - exit 0; + print "Using existing llvm sources in: '$llvm_srcroot'\n"; + print "Using standard LLVM build directory:\n SRC = '$llvm_srcroot'\n DST = '$llvm_dstroot'\n"; } - - -if ($ENV{CONFIGURATION} eq "Debug" or $ENV{CONFIGURATION} eq "Release") +elsif (-e $llvm_dstroot_zip) { # Check for an old llvm source install (not the minimal zip based # install by looking for a .svn file in the llvm directory - chomp(my $llvm_zip_md5 = `md5 -q $ENV{SRCROOT}/llvm.zip`); + chomp(my $llvm_zip_md5 = `md5 -q '$llvm_dstroot_zip'`); my $llvm_zip_md5_file = "$ENV{SRCROOT}/llvm/$llvm_zip_md5"; if (!-e "$llvm_zip_md5_file") { - print "Updating LLVM to use checkpoint from: '$ENV{SRCROOT}/llvm.zip'...\n"; + print "Updating LLVM to use checkpoint from: '$llvm_dstroot_zip'...\n"; if (-d "$ENV{SRCROOT}/llvm") { do_command ("cd '$ENV{SRCROOT}' && rm -rf llvm", "removing old llvm repository", 1); } do_command ("cd '$ENV{SRCROOT}' && unzip -q llvm.zip && touch '$llvm_zip_md5_file'", "expanding llvm.zip", 1); + + } + my $arch_idx = 0; + foreach my $arch (@archs) + { + my $llvm_dstroot_arch = "${llvm_dstroot}/${arch}"; + # Check for our symlink to our .a file + if (!-l "$llvm_dstroot_arch/$llvm_clang_basename") + { + # Symlink doesn't exist, make sure it isn't a normal file + if (-e "$llvm_dstroot_arch/$llvm_clang_basename") + { + # the .a file is a normal file which means it can't be from the + # zip file, we must remove the previous arch directory + do_command ("rm -rf '$llvm_dstroot_arch'", "Removing old '$llvm_dstroot_arch' directory", 1); + } + # Create the arch specific LLVM destination directory if needed + if (!-d $llvm_dstroot_arch) + { + do_command ("mkdir -p '$llvm_dstroot_arch'", "making llvm build directory '$llvm_dstroot_arch'", 1); + } + + # Create a symlink to the .a file from the zip file + do_command ("cd '$llvm_dstroot_arch' ; ln -s $ENV{SRCROOT}/llvm/$llvm_clang_basename", "making llvm archive symlink", 1); + } } exit 0; } +else +{ + print "Checking out llvm sources from revision $llvm_revision...\n"; + do_command ("cd '$SRCROOT' && svn co --quiet --revision $llvm_revision http://llvm.org/svn/llvm-project/llvm/trunk llvm", "checking out llvm from repository", 1); + print "Checking out clang sources from revision $clang_revision...\n"; + do_command ("cd '$llvm_srcroot/tools' && svn co --quiet --revision $clang_revision http://llvm.org/svn/llvm-project/cfe/trunk clang", "checking out clang from repository", 1); + print "Applying any local patches to LLVM..."; + + my @llvm_patches = bsd_glob("$ENV{SRCROOT}/scripts/llvm.*.diff"); + + foreach my $patch (@llvm_patches) + { + do_command ("cd '$llvm_srcroot' && patch -p0 < $patch"); + } + + print "Removing the llvm/test and llvm/tools/clang/test directories...\n"; + do_command ("cd '$llvm_srcroot' && rm -rf test && rm -rf tools/clang/test ", "removing test directories", 1); +} # If our output file already exists then we need not generate it again. if (-e $llvm_clang_outfile) @@ -140,34 +192,6 @@ sub parallel_guess sub build_llvm { #my $extra_svn_options = $debug ? "" : "--quiet"; - my $svn_options = "--quiet"; - if (-d "$llvm_source_dir/llvm") - { - print "Using existing llvm sources in: '$llvm_source_dir/llvm'\n"; - # print "Updating llvm to revision $llvm_revision\n"; - # do_command ("cd '$llvm_source_dir/llvm' && svn update $svn_options --revision $llvm_revision", "updating llvm from repository", 1); - # print "Updating clang to revision $llvm_revision\n"; - # do_command ("cd '$llvm_source_dir/llvm/tools/clang' && svn update $svn_options --revision $clang_revision", "updating clang from repository", 1); - } - else - { - print "Checking out llvm sources from revision $llvm_revision...\n"; - do_command ("cd '$llvm_source_dir' && svn co $svn_options --revision $llvm_revision http://llvm.org/svn/llvm-project/llvm/trunk llvm", "checking out llvm from repository", 1); - print "Checking out clang sources from revision $clang_revision...\n"; - do_command ("cd '$llvm_source_dir/llvm/tools' && svn co $svn_options --revision $clang_revision http://llvm.org/svn/llvm-project/cfe/trunk clang", "checking out clang from repository", 1); - print "Applying any local patches to LLVM..."; - - my @llvm_patches = bsd_glob("$ENV{SRCROOT}/scripts/llvm.*.diff"); - - foreach my $patch (@llvm_patches) - { - do_command ("cd '$llvm_source_dir/llvm' && patch -p0 < $patch"); - } - - print "Removing the llvm/test directory...\n"; - do_command ("cd '$llvm_source_dir' && rm -rf llvm/test", "removing test directory", 1); - } - # Make the llvm build directory my $arch_idx = 0; foreach my $arch (@archs) @@ -177,7 +201,8 @@ sub build_llvm # if the arch destination root exists we have already built it my $do_configure = 0; my $do_make = 0; - + my $is_arm = $arch =~ /^arm/; + my $llvm_dstroot_arch_archive = "$llvm_dstroot_arch/$llvm_clang_basename"; print "LLVM architecture root for ${arch} exists at '$llvm_dstroot_arch'..."; if (-e $llvm_dstroot_arch) @@ -209,25 +234,59 @@ sub build_llvm do_command ("mkdir -p '$llvm_dstroot_arch'", "making llvm build directory '$llvm_dstroot_arch'", 1); $do_configure = 1; $do_make = 1; - } - - # If this is the first architecture, then make a symbolic link - # for any header files that get generated. - if ($arch_idx == 0) - { - if (!-l "$llvm_dstroot/llvm") + + if ($is_arm) { - do_command ("cd $llvm_dstroot && ln -s './${arch}' llvm"); + my $llvm_dstroot_arch_bin = "${llvm_dstroot_arch}/bin"; + + if (!-d $llvm_dstroot_arch_bin) + { + do_command ("mkdir -p '$llvm_dstroot_arch_bin'", "making llvm build arch bin directory '$llvm_dstroot_arch_bin'", 1); + my @tools = ("ar", "nm", "ranlib", "strip", "lipo", "ld", "as"); + my $script_mode = 0755; + my $prog; + for $prog (@tools) + { + chomp(my $actual_prog_path = `xcrun -sdk '$ENV{SDKROOT}' -find ${prog}`); + my $script_prog_path = "$llvm_dstroot_arch_bin/arm-apple-darwin${os_release}-${prog}"; + open (SCRIPT, ">$script_prog_path") or die "Can't open $! for writing...\n"; + print SCRIPT "#!/bin/sh\nexec '$actual_prog_path' \"\$\@\"\n"; + close (SCRIPT); + chmod($script_mode, $script_prog_path); + } + # Tools that must have the "-arch" and "-sysroot" specified + my @arch_sysroot_tools = ("clang", "clang++", "gcc", "g++"); + for $prog (@arch_sysroot_tools) + { + chomp(my $actual_prog_path = `xcrun -sdk '$ENV{SDKROOT}' -find ${prog}`); + my $script_prog_path = "$llvm_dstroot_arch_bin/arm-apple-darwin${os_release}-${prog}"; + open (SCRIPT, ">$script_prog_path") or die "Can't open $! for writing...\n"; + print SCRIPT "#!/bin/sh\nexec '$actual_prog_path' -arch ${arch} -isysroot '$ENV{SDKROOT}' \"\$\@\"\n"; + close (SCRIPT); + chmod($script_mode, $script_prog_path); + } + my $new_path = "$ENV{PATH}:$llvm_dstroot_arch_bin"; + print "Setting new environment PATH = '$new_path'\n"; + $ENV{PATH} = $new_path; + } } } - + if ($do_configure) { # Build llvm and clang print "Configuring clang ($arch) in '$llvm_dstroot_arch'...\n"; - my $lldb_configuration_options = ''; - $llvm_configuration eq 'Release' and $lldb_configuration_options .= '--enable-optimized --disable-assertions'; - do_command ("cd '$llvm_dstroot_arch' && '$llvm_source_dir/llvm/configure' $lldb_configuration_options --enable-targets=x86_64,arm --build=$arch-apple-darwin10", + my $lldb_configuration_options = "--enable-targets=x86_64,arm $llvm_config_href->{configure_options}"; + + if ($is_arm) + { + $lldb_configuration_options .= " --host=arm-apple-darwin${os_release} --target=arm-apple-darwin${os_release} --build=i686-apple-darwin${os_release}"; + } + else + { + $lldb_configuration_options .= " --build=$arch-apple-darwin${os_release}"; + } + do_command ("cd '$llvm_dstroot_arch' && '$llvm_srcroot/configure' $lldb_configuration_options", "configuring llvm build", 1); } @@ -236,52 +295,22 @@ sub build_llvm # Build llvm and clang my $num_cpus = parallel_guess(); print "Building clang using $num_cpus cpus ($arch)...\n"; - do_command ("cd '$llvm_dstroot_arch' && make -j$num_cpus clang-only VERBOSE=1 PROJECT_NAME='llvm'", "making llvm and clang", 1); - do_command ("cd '$llvm_dstroot_arch' && make -j$num_cpus tools-only VERBOSE=1 PROJECT_NAME='llvm' EDIS_VERSION=1", "making libedis", 1); + my $extra_make_flags = ''; + if ($is_arm) + { + $extra_make_flags = "UNIVERSAL=1 UNIVERSAL_ARCH=${arch} UNIVERSAL_SDK_PATH='$ENV{SDKROOT}'"; + } + do_command ("cd '$llvm_dstroot_arch' && make -j$num_cpus clang-only VERBOSE=1 $llvm_config_href->{make_options} NO_RUNTIME_LIBS=1 PROJECT_NAME='llvm' $extra_make_flags", "making llvm and clang", 1); + do_command ("cd '$llvm_dstroot_arch' && make -j$num_cpus tools-only VERBOSE=1 $llvm_config_href->{make_options} NO_RUNTIME_LIBS=1 PROJECT_NAME='llvm' $extra_make_flags EDIS_VERSION=1", "making libedis", 1); # Combine all .o files from a bunch of static libraries from llvm # and clang into a single .a file. create_single_llvm_arhive_for_arch ($llvm_dstroot_arch, 1); } - -f "$llvm_dstroot_arch_archive" and push @llvm_clang_slices, "$llvm_dstroot_arch_archive"; ++$arch_idx; } - - # Combine all skinny slices of the LLVM/Clang combined archive - create_dstroot_file ($llvm_clang_basename, $llvm_clang_dirname, \@llvm_clang_slices, $llvm_clang_basename); } -sub create_dstroot_file -{ - my $file = shift; - my $dir = shift; - my $fullpath = "$dir/$file"; # The path to the file to create - my $slice_aref = shift; # Array containing one or more skinny files that will be combined into $fullpath - my $what = shift; # Text describing the $fullpath - - print "create_dstroot_file file = '$file', dir = '$dir', slices = (" . join (', ', @$slice_aref) . ") for what = '$what'\n"; - - if (-d $dir) - { - if (@$slice_aref > 0) - { - print "Creating and installing $what into '$fullpath'...\n"; - my $lipo_command = "lipo -output '$fullpath' -create"; - foreach (@$slice_aref) { $lipo_command .= " '$_'"; } - do_command ($lipo_command, "creating $what universal output file", 1); - } - - - if (!-e $fullpath) - { - # die "error: '$fullpath' is missing\n"; - } - } - else - { - die "error: directory '$dir' doesn't exist to receive file '$file'\n"; - } -} #---------------------------------------------------------------------- # quote the path if needed and realpath it if the -r option was # specified diff --git a/lldb/source/API/SBCommandInterpreter.cpp b/lldb/source/API/SBCommandInterpreter.cpp index ec2653d909e..21c19fda84a 100644 --- a/lldb/source/API/SBCommandInterpreter.cpp +++ b/lldb/source/API/SBCommandInterpreter.cpp @@ -316,6 +316,7 @@ SBCommandInterpreter::GetArgumentDescriptionAsCString (const lldb::CommandArgume } +#ifndef LLDB_DISABLE_PYTHON extern "C" bool LLDBSwigPythonBreakpointCallbackFunction ( @@ -358,6 +359,10 @@ extern "C" bool LLDBSwigPythonCallCommand lldb_private::CommandReturnObject& cmd_retobj ); +// Defined in the SWIG source file +extern "C" void +init_lldb(void); + extern "C" bool LLDBSwigPythonCallModuleInit ( const std::string python_module_name, @@ -365,9 +370,18 @@ extern "C" bool LLDBSwigPythonCallModuleInit lldb::DebuggerSP& debugger ); +#else extern "C" void init_lldb(void); +// Usually defined in the SWIG source file, but we have sripting disabled +extern "C" void +init_lldb(void) +{ +} + +#endif + void SBCommandInterpreter::InitializeSWIG () { @@ -375,6 +389,7 @@ SBCommandInterpreter::InitializeSWIG () if (!g_initialized) { g_initialized = true; +#ifndef LLDB_DISABLE_PYTHON ScriptInterpreter::InitializeInterpreter (init_lldb, LLDBSwigPythonBreakpointCallbackFunction, LLDBSwigPythonCallTypeScript, @@ -386,5 +401,6 @@ SBCommandInterpreter::InitializeSWIG () LLDBSwigPython_UpdateSynthProviderInstance, LLDBSwigPythonCallCommand, LLDBSwigPythonCallModuleInit); +#endif } } diff --git a/lldb/source/Commands/CommandObjectType.cpp b/lldb/source/Commands/CommandObjectType.cpp index b3e24bb2a90..e3e437fbdd9 100644 --- a/lldb/source/Commands/CommandObjectType.cpp +++ b/lldb/source/Commands/CommandObjectType.cpp @@ -48,7 +48,7 @@ public: bool m_one_liner; bool m_regex; - ConstString* m_name; + ConstString m_name; std::string m_category; @@ -59,19 +59,19 @@ public: bool novl, bool onel, bool regx, - ConstString* name, + const ConstString& name, std::string catg) : - m_skip_pointers(sptr), - m_skip_references(sref), - m_cascade(casc), - m_target_types(), - m_user_source(), - m_no_children(noch), - m_no_value(novl), - m_one_liner(onel), - m_regex(regx), - m_name(name), - m_category(catg) + m_skip_pointers(sptr), + m_skip_references(sref), + m_cascade(casc), + m_target_types(), + m_user_source(), + m_no_children(noch), + m_no_value(novl), + m_one_liner(onel), + m_regex(regx), + m_name(name), + m_category(catg) { } @@ -157,7 +157,7 @@ private: bool m_skip_pointers; bool m_regex; std::string m_format_string; - ConstString* m_name; + ConstString m_name; std::string m_python_script; std::string m_python_function; bool m_is_add_script; @@ -753,7 +753,7 @@ CommandObjectTypeFormatList_LoopCallback ( } - +#ifndef LLDB_DISABLE_PYTHON //------------------------------------------------------------------------- // CommandObjectTypeSummaryAdd @@ -901,13 +901,18 @@ public: if (options->m_name) { - if ( (bool)(*(options->m_name)) ) + CommandObjectTypeSummaryAdd::AddSummary (options->m_name, + script_format, + CommandObjectTypeSummaryAdd::eNamedSummary, + options->m_category, + &error); + if (error.Fail()) { - CommandObjectTypeSummaryAdd::AddSummary(*(options->m_name), - script_format, - CommandObjectTypeSummaryAdd::eNamedSummary, - options->m_category, - &error); + CommandObjectTypeSummaryAdd::AddSummary (options->m_name, + script_format, + CommandObjectTypeSummaryAdd::eNamedSummary, + options->m_category, + &error); if (error.Fail()) { out_stream->Printf ("%s", error.AsCString()); @@ -922,9 +927,17 @@ public: return; } } + else + { + out_stream->PutCString (error.AsCString()); + out_stream->Flush(); + return; + } } }; +#endif // #ifndef LLDB_DISABLE_PYTHON + Error CommandObjectTypeSummaryAdd::CommandOptions::SetOptionValue (uint32_t option_idx, const char *option_arg) { @@ -961,7 +974,7 @@ CommandObjectTypeSummaryAdd::CommandOptions::SetOptionValue (uint32_t option_idx m_regex = true; break; case 'n': - m_name = new ConstString(option_arg); + m_name.SetCString(option_arg); break; case 'o': m_python_script = std::string(option_arg); @@ -995,7 +1008,7 @@ CommandObjectTypeSummaryAdd::CommandOptions::OptionParsingStarting () m_skip_references = false; m_skip_pointers = false; m_regex = false; - m_name = NULL; + m_name.Clear(); m_python_script = ""; m_python_function = ""; m_format_string = ""; @@ -1003,6 +1016,7 @@ CommandObjectTypeSummaryAdd::CommandOptions::OptionParsingStarting () m_category = "default"; } +#ifndef LLDB_DISABLE_PYTHON void CommandObjectTypeSummaryAdd::CollectPythonScript (ScriptAddOptions *options, CommandReturnObject &result) @@ -1166,28 +1180,28 @@ CommandObjectTypeSummaryAdd::Execute_ScriptSummary (Args& command, CommandReturn if (m_options.m_name) { - if ( (bool)(*(m_options.m_name)) ) - { - AddSummary(*(m_options.m_name), script_format, eNamedSummary, m_options.m_category, &error); - if (error.Fail()) - { - result.AppendError(error.AsCString()); - result.AppendError("added to types, but not given a name"); - result.SetStatus(eReturnStatusFailed); - return false; - } - } - else + AddSummary(m_options.m_name, script_format, eNamedSummary, m_options.m_category, &error); + if (error.Fail()) { + result.AppendError(error.AsCString()); result.AppendError("added to types, but not given a name"); result.SetStatus(eReturnStatusFailed); return false; } } + else + { + result.AppendError("added to types, but not given a name"); + result.SetStatus(eReturnStatusFailed); + return false; + } return result.Succeeded(); } +#endif + + bool CommandObjectTypeSummaryAdd::Execute_StringSummary (Args& command, CommandReturnObject &result) { @@ -1263,24 +1277,21 @@ CommandObjectTypeSummaryAdd::Execute_StringSummary (Args& command, CommandReturn if (m_options.m_name) { - if ( (bool)(*(m_options.m_name)) ) - { - AddSummary(*(m_options.m_name), entry, eNamedSummary, m_options.m_category, &error); - if (error.Fail()) - { - result.AppendError(error.AsCString()); - result.AppendError("added to types, but not given a name"); - result.SetStatus(eReturnStatusFailed); - return false; - } - } - else + AddSummary(m_options.m_name, entry, eNamedSummary, m_options.m_category, &error); + if (error.Fail()) { + result.AppendError(error.AsCString()); result.AppendError("added to types, but not given a name"); result.SetStatus(eReturnStatusFailed); return false; } } + else + { + result.AppendError("added to types, but not given a name"); + result.SetStatus(eReturnStatusFailed); + return false; + } result.SetStatus(eReturnStatusSuccessFinishNoResult); return result.Succeeded(); @@ -1372,9 +1383,17 @@ bool CommandObjectTypeSummaryAdd::Execute (Args& command, CommandReturnObject &result) { if (m_options.m_is_add_script) + { +#ifndef LLDB_DISABLE_PYTHON return Execute_ScriptSummary(command, result); - else - return Execute_StringSummary(command, result); +#else + result.AppendError ("python is disabled"); + result.SetStatus(eReturnStatusFailed); + return false; +#endif + } + + return Execute_StringSummary(command, result); } bool @@ -2454,6 +2473,8 @@ CommandObjectTypeFilterList::CommandOptions::g_option_table[] = { 0, false, NULL, 0, 0, NULL, 0, eArgTypeNone, NULL } }; +#ifndef LLDB_DISABLE_PYTHON + //------------------------------------------------------------------------- // CommandObjectTypeSynthList //------------------------------------------------------------------------- @@ -2664,6 +2685,7 @@ CommandObjectTypeSynthList::CommandOptions::g_option_table[] = { 0, false, NULL, 0, 0, NULL, 0, eArgTypeNone, NULL } }; +#endif // #ifndef LLDB_DISABLE_PYTHON //------------------------------------------------------------------------- // CommandObjectTypeFilterDelete //------------------------------------------------------------------------- @@ -2826,6 +2848,8 @@ CommandObjectTypeFilterDelete::CommandOptions::g_option_table[] = { 0, false, NULL, 0, 0, NULL, 0, eArgTypeNone, NULL } }; +#ifndef LLDB_DISABLE_PYTHON + //------------------------------------------------------------------------- // CommandObjectTypeSynthDelete //------------------------------------------------------------------------- @@ -2988,6 +3012,8 @@ CommandObjectTypeSynthDelete::CommandOptions::g_option_table[] = { 0, false, NULL, 0, 0, NULL, 0, eArgTypeNone, NULL } }; +#endif // #ifndef LLDB_DISABLE_PYTHON + //------------------------------------------------------------------------- // CommandObjectTypeFilterClear //------------------------------------------------------------------------- @@ -3114,6 +3140,7 @@ CommandObjectTypeFilterClear::CommandOptions::g_option_table[] = { 0, false, NULL, 0, 0, NULL, 0, eArgTypeNone, NULL } }; +#ifndef LLDB_DISABLE_PYTHON //------------------------------------------------------------------------- // CommandObjectTypeSynthClear //------------------------------------------------------------------------- @@ -3240,8 +3267,9 @@ CommandObjectTypeSynthClear::CommandOptions::g_option_table[] = { 0, false, NULL, 0, 0, NULL, 0, eArgTypeNone, NULL } }; + //------------------------------------------------------------------------- -// CommandObjectTypeSynthAdd +// TypeSynthAddInputReader //------------------------------------------------------------------------- static const char *g_synth_addreader_instructions = "Enter your Python command(s). Type 'DONE' to end.\n" @@ -3257,11 +3285,9 @@ static const char *g_synth_addreader_instructions = "Enter your Python command class TypeSynthAddInputReader : public InputReaderEZ { -private: - DISALLOW_COPY_AND_ASSIGN (TypeSynthAddInputReader); public: TypeSynthAddInputReader(Debugger& debugger) : - InputReaderEZ(debugger) + InputReaderEZ(debugger) {} virtual @@ -3402,6 +3428,9 @@ public: } } } + +private: + DISALLOW_COPY_AND_ASSIGN (TypeSynthAddInputReader); }; void @@ -3612,6 +3641,8 @@ CommandObjectTypeSynthAdd::CommandOptions::g_option_table[] = { 0, false, NULL, 0, 0, NULL, 0, eArgTypeNone, NULL } }; +#endif // #ifndef LLDB_DISABLE_PYTHON + class CommandObjectTypeFilterAdd : public CommandObject { @@ -3918,6 +3949,8 @@ public: } }; +#ifndef LLDB_DISABLE_PYTHON + class CommandObjectTypeSynth : public CommandObjectMultiword { public: @@ -3939,6 +3972,8 @@ public: } }; +#endif // #ifndef LLDB_DISABLE_PYTHON + class CommandObjectTypeFilter : public CommandObjectMultiword { public: @@ -4016,7 +4051,9 @@ CommandObjectType::CommandObjectType (CommandInterpreter &interpreter) : LoadSubCommand ("filter", CommandObjectSP (new CommandObjectTypeFilter (interpreter))); LoadSubCommand ("format", CommandObjectSP (new CommandObjectTypeFormat (interpreter))); LoadSubCommand ("summary", CommandObjectSP (new CommandObjectTypeSummary (interpreter))); +#ifndef LLDB_DISABLE_PYTHON LoadSubCommand ("synthetic", CommandObjectSP (new CommandObjectTypeSynth (interpreter))); +#endif } diff --git a/lldb/source/Commands/CommandObjectType.h b/lldb/source/Commands/CommandObjectType.h index c3ac8b5ba91..c796902cf3b 100644 --- a/lldb/source/Commands/CommandObjectType.h +++ b/lldb/source/Commands/CommandObjectType.h @@ -32,7 +32,6 @@ public: ~CommandObjectType (); }; - } // namespace lldb_private #endif // liblldb_CommandObjectType_h_ diff --git a/lldb/source/Core/FormatClasses.cpp b/lldb/source/Core/FormatClasses.cpp index 04b57adabe4..30254d36994 100644 --- a/lldb/source/Core/FormatClasses.cpp +++ b/lldb/source/Core/FormatClasses.cpp @@ -8,12 +8,21 @@ //===----------------------------------------------------------------------===// // C Includes + +#ifdef LLDB_DISABLE_PYTHON + +struct PyObject; + +#else // #ifdef LLDB_DISABLE_PYTHON + #if defined (__APPLE__) #include <Python/Python.h> #else #include <Python.h> #endif +#endif // #ifdef LLDB_DISABLE_PYTHON + // C++ Includes #include <ostream> @@ -145,6 +154,8 @@ StringSummaryFormat::GetDescription() return sstr.GetString(); } +#ifndef LLDB_DISABLE_PYTHON + ScriptSummaryFormat::ScriptSummaryFormat(bool casc, bool skipptr, bool skipref, @@ -187,6 +198,8 @@ ScriptSummaryFormat::GetDescription() } +#endif // #ifndef LLDB_DISABLE_PYTHON + std::string SyntheticFilter::GetDescription() { @@ -231,6 +244,8 @@ SyntheticArrayView::GetDescription() return sstr.GetString(); } +#ifndef LLDB_DISABLE_PYTHON + SyntheticScriptProvider::FrontEnd::FrontEnd(std::string pclass, lldb::ValueObjectSP be) : SyntheticChildrenFrontEnd(be), @@ -253,7 +268,7 @@ SyntheticScriptProvider::FrontEnd::FrontEnd(std::string pclass, SyntheticScriptProvider::FrontEnd::~FrontEnd() { - Py_XDECREF((PyObject*)m_wrapper); + Py_XDECREF((PyObject*)m_wrapper); } lldb::ValueObjectSP @@ -278,6 +293,8 @@ SyntheticScriptProvider::GetDescription() return sstr.GetString(); } +#endif // #ifndef LLDB_DISABLE_PYTHON + int SyntheticArrayView::GetRealIndexForIndex(int i) { diff --git a/lldb/source/Core/FormatManager.cpp b/lldb/source/Core/FormatManager.cpp index 58ca76d420a..b1cc6e8a1f2 100644 --- a/lldb/source/Core/FormatManager.cpp +++ b/lldb/source/Core/FormatManager.cpp @@ -163,8 +163,10 @@ FormatCategory::FormatCategory(IFormatChangeListener* clist, m_regex_summary_nav(new RegexSummaryNavigator("regex-summary",clist)), m_filter_nav(new FilterNavigator("filter",clist)), m_regex_filter_nav(new RegexFilterNavigator("regex-filter",clist)), +#ifndef LLDB_DISABLE_PYTHON m_synth_nav(new SynthNavigator("synth",clist)), m_regex_synth_nav(new RegexSynthNavigator("regex-synth",clist)), +#endif m_enabled(false), m_change_listener(clist), m_mutex(Mutex::eMutexTypeRecursive), @@ -189,59 +191,67 @@ FormatCategory::Get (ValueObject& valobj, bool FormatCategory::Get(ValueObject& valobj, - lldb::SyntheticChildrenSP& entry, + lldb::SyntheticChildrenSP& entry_sp, lldb::DynamicValueType use_dynamic, uint32_t* reason) { if (!IsEnabled()) return false; - SyntheticFilter::SharedPointer filter; - SyntheticScriptProvider::SharedPointer synth; - bool regex_filter, regex_synth; - uint32_t reason_filter; - uint32_t reason_synth; - - bool pick_synth = false; - + SyntheticFilter::SharedPointer filter_sp; + uint32_t reason_filter = 0; + bool regex_filter = false; // first find both Filter and Synth, and then check which is most recent - if (!GetFilterNavigator()->Get(valobj, filter, use_dynamic, &reason_filter)) - regex_filter = GetRegexFilterNavigator()->Get(valobj, filter, use_dynamic, &reason_filter); - + if (!GetFilterNavigator()->Get(valobj, filter_sp, use_dynamic, &reason_filter)) + regex_filter = GetRegexFilterNavigator()->Get (valobj, filter_sp, use_dynamic, &reason_filter); + +#ifndef LLDB_DISABLE_PYTHON + bool regex_synth = false; + uint32_t reason_synth = 0; + bool pick_synth = false; + SyntheticScriptProvider::SharedPointer synth; if (!GetSyntheticNavigator()->Get(valobj, synth, use_dynamic, &reason_synth)) - regex_synth = GetRegexSyntheticNavigator()->Get(valobj, synth, use_dynamic, &reason_synth); - - if (!filter.get() && !synth.get()) + regex_synth = GetRegexSyntheticNavigator()->Get (valobj, synth, use_dynamic, &reason_synth); + if (!filter_sp.get() && !synth.get()) return false; - - else if (!filter.get() && synth.get()) + else if (!filter_sp.get() && synth.get()) pick_synth = true; - else if (filter.get() && !synth.get()) + else if (filter_sp.get() && !synth.get()) pick_synth = false; - else /*if (filter.get() && synth.get())*/ + else /*if (filter_sp.get() && synth.get())*/ { - if (filter->m_my_revision > synth->m_my_revision) + if (filter_sp->m_my_revision > synth->m_my_revision) pick_synth = false; else pick_synth = true; } - if (pick_synth) { if (regex_synth && reason) *reason |= lldb_private::eFormatterChoiceCriterionRegularExpressionFilter; - entry = synth; + entry_sp = synth; return true; } else { if (regex_filter && reason) *reason |= lldb_private::eFormatterChoiceCriterionRegularExpressionFilter; - entry = filter; + entry_sp = filter_sp; return true; } + +#else + if (filter_sp) + { + entry_sp = filter_sp; + return true; + } +#endif + + return false; + } void @@ -255,10 +265,12 @@ FormatCategory::Clear (FormatCategoryItems items) m_filter_nav->Clear(); if ( (items & eFormatCategoryItemRegexFilter) == eFormatCategoryItemRegexFilter ) m_regex_filter_nav->Clear(); +#ifndef LLDB_DISABLE_PYTHON if ( (items & eFormatCategoryItemSynth) == eFormatCategoryItemSynth ) m_synth_nav->Clear(); if ( (items & eFormatCategoryItemRegexSynth) == eFormatCategoryItemRegexSynth ) m_regex_synth_nav->Clear(); +#endif } bool @@ -274,10 +286,12 @@ FormatCategory::Delete (ConstString name, success = m_filter_nav->Delete(name) || success; if ( (items & eFormatCategoryItemRegexFilter) == eFormatCategoryItemRegexFilter ) success = m_regex_filter_nav->Delete(name) || success; +#ifndef LLDB_DISABLE_PYTHON if ( (items & eFormatCategoryItemSynth) == eFormatCategoryItemSynth ) success = m_synth_nav->Delete(name) || success; if ( (items & eFormatCategoryItemRegexSynth) == eFormatCategoryItemRegexSynth ) success = m_regex_synth_nav->Delete(name) || success; +#endif return success; } @@ -293,10 +307,12 @@ FormatCategory::GetCount (FormatCategoryItems items) count += m_filter_nav->GetCount(); if ( (items & eFormatCategoryItemRegexFilter) == eFormatCategoryItemRegexFilter ) count += m_regex_filter_nav->GetCount(); +#ifndef LLDB_DISABLE_PYTHON if ( (items & eFormatCategoryItemSynth) == eFormatCategoryItemSynth ) count += m_synth_nav->GetCount(); if ( (items & eFormatCategoryItemRegexSynth) == eFormatCategoryItemRegexSynth ) count += m_regex_synth_nav->GetCount(); +#endif return count; } @@ -312,7 +328,9 @@ FormatCategory::AnyMatches(ConstString type_name, lldb::SummaryFormatSP summary; SyntheticFilter::SharedPointer filter; +#ifndef LLDB_DISABLE_PYTHON SyntheticScriptProvider::SharedPointer synth; +#endif if ( (items & eFormatCategoryItemSummary) == eFormatCategoryItemSummary ) { @@ -358,6 +376,7 @@ FormatCategory::AnyMatches(ConstString type_name, return true; } } +#ifndef LLDB_DISABLE_PYTHON if ( (items & eFormatCategoryItemSynth) == eFormatCategoryItemSynth ) { if (m_synth_nav->Get(type_name, synth)) @@ -380,6 +399,7 @@ FormatCategory::AnyMatches(ConstString type_name, return true; } } +#endif return false; } @@ -597,6 +617,7 @@ FormatManager::FormatManager() : gnu_category_sp->GetSummaryNavigator()->Add(ConstString("std::basic_string<char,std::char_traits<char>,std::allocator<char> >"), std_string_summary_sp); +#ifndef LLDB_DISABLE_PYTHON gnu_category_sp->GetRegexSyntheticNavigator()->Add(RegularExpressionSP(new RegularExpression("^(std::)?vector<.+>$")), SyntheticChildrenSP(new SyntheticScriptProvider(true, false, @@ -612,7 +633,7 @@ FormatManager::FormatManager() : false, false, "gnu_libstdcpp.StdListSynthProvider"))); - +#endif // DO NOT change the order of these calls, unless you WANT a change in the priority of these categories EnableCategory(m_system_category_name); EnableCategory(m_gnu_cpp_category_name); diff --git a/lldb/source/Host/common/Host.cpp b/lldb/source/Host/common/Host.cpp index ec979260ab5..280f1977af1 100644 --- a/lldb/source/Host/common/Host.cpp +++ b/lldb/source/Host/common/Host.cpp @@ -910,7 +910,9 @@ Host::GetLLDBPath (PathType path_type, FileSpec &file_spec) if (framework_pos) { framework_pos += strlen("LLDB.framework"); +#if !defined (__arm__) ::strncpy (framework_pos, "/Resources", PATH_MAX - (framework_pos - raw_path)); +#endif } #endif FileSpec::Resolve (raw_path, resolved_path, sizeof(resolved_path)); diff --git a/lldb/source/Host/macosx/Host.mm b/lldb/source/Host/macosx/Host.mm index 4a30ccee495..d38c5f1abfc 100644 --- a/lldb/source/Host/macosx/Host.mm +++ b/lldb/source/Host/macosx/Host.mm @@ -47,8 +47,12 @@ #include <objc/objc-auto.h> +#if defined(__arm__) +#include <UIKit/UIKit.h> +#else #include <ApplicationServices/ApplicationServices.h> #include <Carbon/Carbon.h> +#endif #include <Foundation/Foundation.h> #ifndef _POSIX_SPAWN_DISABLE_ASLR @@ -150,6 +154,9 @@ Host::ResolveExecutableInBundle (FileSpec &file) lldb::pid_t Host::LaunchApplication (const FileSpec &app_file_spec) { +#if defined (__arm__) + return LLDB_INVALID_PROCESS_ID; +#else char app_path[PATH_MAX]; app_file_spec.GetPath(app_path, sizeof(app_path)); @@ -181,6 +188,7 @@ Host::LaunchApplication (const FileSpec &app_file_spec) ::pid_t pid = LLDB_INVALID_PROCESS_ID; error = ::GetProcessPID(&psn, &pid); return pid; +#endif } @@ -237,6 +245,7 @@ WaitForProcessToSIGSTOP (const lldb::pid_t pid, const int timeout_in_seconds) } return false; } +#if !defined(__arm__) static lldb::pid_t LaunchInNewTerminalWithCommandFile @@ -552,6 +561,8 @@ LaunchInNewTerminalWithAppleScript (const char *exe_path, return error; } +#endif // #if !defined(__arm__) + // On MacOSX CrashReporter will display a string for each shared library if // the shared library has an exported symbol named "__crashreporter_info__". @@ -600,6 +611,9 @@ Host::SetCrashDescription (const char *cstr) bool Host::OpenFileInExternalEditor (const FileSpec &file_spec, uint32_t line_no) { +#if defined(__arm__) + return false; +#else // We attach this to an 'odoc' event to specify a particular selection typedef struct { int16_t reserved0; // must be zero @@ -794,8 +808,8 @@ Host::OpenFileInExternalEditor (const FileSpec &file_spec, uint32_t line_no) return false; } } - return true; +#endif // #if !defined(__arm__) } @@ -881,6 +895,19 @@ Host::GetOSVersion ) { +#if defined (__arm__) + major = UINT32_MAX; + minor = UINT32_MAX; + update = UINT32_MAX; + + NSString *system_version_nstr = [[UIDevice currentDevice] systemVersion]; + if (system_version_nstr) + { + const char *system_version_cstr = system_version_nstr.UTF8String; + Args::StringToVersion(system_version_cstr, major, minor, update); + } + return major != UINT32_MAX; +#else SInt32 version; OSErr err = ::Gestalt (gestaltSystemVersion, &version); @@ -911,6 +938,7 @@ Host::GetOSVersion } return true; +#endif } static bool diff --git a/lldb/source/Host/macosx/Symbols.cpp b/lldb/source/Host/macosx/Symbols.cpp index bd49e83ed85..efdb98abb52 100644 --- a/lldb/source/Host/macosx/Symbols.cpp +++ b/lldb/source/Host/macosx/Symbols.cpp @@ -35,12 +35,14 @@ using namespace lldb; using namespace lldb_private; using namespace llvm::MachO; +#if !defined (__arm__) // No DebugSymbols on the iOS devices extern "C" { CFURLRef DBGCopyFullDSYMURLForUUID (CFUUIDRef uuid, CFURLRef exec_url); CFDictionaryRef DBGCopyDSYMPropertyLists (CFURLRef dsym_url); } +#endif static bool SkinnyMachOFileContainsArchAndUUID @@ -287,6 +289,8 @@ LocateMacOSXFilesUsingDebugSymbols if (out_dsym_fspec) out_dsym_fspec->Clear(); +#if !defined (__arm__) // No DebugSymbols on the iOS devices + if (uuid && uuid->IsValid()) { // Try and locate the dSYM file using DebugSymbols first @@ -424,6 +428,8 @@ LocateMacOSXFilesUsingDebugSymbols } } } +#endif // #if !defined (__arm__) + return items_found; } diff --git a/lldb/source/Interpreter/CommandInterpreter.cpp b/lldb/source/Interpreter/CommandInterpreter.cpp index 0b9e4db2450..b94c4099a9e 100644 --- a/lldb/source/Interpreter/CommandInterpreter.cpp +++ b/lldb/source/Interpreter/CommandInterpreter.cpp @@ -2276,12 +2276,16 @@ CommandInterpreter::GetScriptInterpreter () lldb::ScriptLanguage script_lang = GetDebugger().GetScriptLanguage(); switch (script_lang) { - case eScriptLanguageNone: - m_script_interpreter_ap.reset (new ScriptInterpreterNone (*this)); - break; case eScriptLanguagePython: +#ifndef LLDB_DISABLE_PYTHON m_script_interpreter_ap.reset (new ScriptInterpreterPython (*this)); break; +#else + // Fall through to the None case when python is disabled +#endif + case eScriptLanguageNone: + m_script_interpreter_ap.reset (new ScriptInterpreterNone (*this)); + break; default: break; }; diff --git a/lldb/source/Interpreter/ScriptInterpreter.cpp b/lldb/source/Interpreter/ScriptInterpreter.cpp index e125d657c33..eb7ddc29d54 100644 --- a/lldb/source/Interpreter/ScriptInterpreter.cpp +++ b/lldb/source/Interpreter/ScriptInterpreter.cpp @@ -84,7 +84,6 @@ ScriptInterpreter::LanguageToString (lldb::ScriptLanguage language) case eScriptLanguagePython: return_value = "Python"; break; - } return return_value; @@ -103,6 +102,7 @@ ScriptInterpreter::InitializeInterpreter (SWIGInitCallback python_swig_init_call SWIGPythonCallCommand python_swig_call_command, SWIGPythonCallModuleInit python_swig_call_mod_init) { +#ifndef LLDB_DISABLE_PYTHON ScriptInterpreterPython::InitializeInterpreter (python_swig_init_callback, python_swig_breakpoint_callback, python_swig_typescript_callback, @@ -114,11 +114,14 @@ ScriptInterpreter::InitializeInterpreter (SWIGInitCallback python_swig_init_call python_swig_update_provider, python_swig_call_command, python_swig_call_mod_init); +#endif // #ifndef LLDB_DISABLE_PYTHON } void ScriptInterpreter::TerminateInterpreter () { +#ifndef LLDB_DISABLE_PYTHON ScriptInterpreterPython::TerminateInterpreter (); +#endif // #ifndef LLDB_DISABLE_PYTHON } diff --git a/lldb/source/Interpreter/ScriptInterpreterPython.cpp b/lldb/source/Interpreter/ScriptInterpreterPython.cpp index ee356900e85..213a69ed922 100644 --- a/lldb/source/Interpreter/ScriptInterpreterPython.cpp +++ b/lldb/source/Interpreter/ScriptInterpreterPython.cpp @@ -9,6 +9,11 @@ // In order to guarantee correct working with Python, Python.h *MUST* be // the *FIRST* header file included here. +#ifdef LLDB_DISABLE_PYTHON + +// Python is disabled in this build + +#else #if defined (__APPLE__) #include <Python/Python.h> @@ -1998,3 +2003,5 @@ ScriptInterpreterPython::InitializePrivate () // // //// Py_Finalize (); //} + +#endif // #ifdef LLDB_DISABLE_PYTHON diff --git a/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.cpp b/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.cpp index a2fa14c67c8..b7790337b03 100644 --- a/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.cpp +++ b/lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.cpp @@ -229,19 +229,19 @@ DynamicLoaderMacOSXDYLD::LocateDYLD() if (executable) { - if (executable->GetArchitecture().GetAddressByteSize() == 8) + const ArchSpec &exe_arch = executable->GetArchitecture(); + if (exe_arch.GetAddressByteSize() == 8) { return ReadDYLDInfoFromMemoryAndSetNotificationCallback(0x7fff5fc00000ull); } -#if defined (__arm__) + else if (exe_arch.GetMachine() == llvm::Triple::arm || exe_arch.GetMachine() == llvm::Triple::thumb) + { + return ReadDYLDInfoFromMemoryAndSetNotificationCallback(0x2fe00000); + } else { - ArchSpec arm_arch("arm"); - if (arm_arch == executable->Arch()) - return ReadDYLDInfoFromMemoryAndSetNotificationCallback(0x2fe00000); + return ReadDYLDInfoFromMemoryAndSetNotificationCallback(0x8fe00000); } -#endif - return ReadDYLDInfoFromMemoryAndSetNotificationCallback(0x8fe00000); } return false; } diff --git a/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp b/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp index ef9e5975e18..c1d9f955159 100644 --- a/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp +++ b/lldb/source/Plugins/Process/MacOSX-Kernel/CommunicationKDP.cpp @@ -30,8 +30,6 @@ // Project includes #include "ProcessKDPLog.h" -#define DEBUGSERVER_BASENAME "debugserver" - using namespace lldb; using namespace lldb_private; diff --git a/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp b/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp index 52cb00f0e03..211dfb28452 100644 --- a/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp +++ b/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm.cpp @@ -25,6 +25,8 @@ #include "lldb/Host/Endian.h" #include "llvm/Support/Compiler.h" +#include "Plugins/Process/Utility/InstructionUtils.h" + // Support building against older versions of LLVM, this macro was added // recently. #ifndef LLVM_EXTENSION @@ -982,7 +984,7 @@ RegisterContextDarwin_arm::NumSupportedHardwareBreakpoints () uint32_t register_DBGDIDR; asm("mrc p14, 0, %0, c0, c0, 0" : "=r" (register_DBGDIDR)); - g_num_supported_hw_breakpoints = bits(register_DBGDIDR, 27, 24); + g_num_supported_hw_breakpoints = Bits32 (register_DBGDIDR, 27, 24); // Zero is reserved for the BRP count, so don't increment it if it is zero if (g_num_supported_hw_breakpoints > 0) g_num_supported_hw_breakpoints++; @@ -1111,7 +1113,7 @@ RegisterContextDarwin_arm::NumSupportedHardwareWatchpoints () uint32_t register_DBGDIDR; asm("mrc p14, 0, %0, c0, c0, 0" : "=r" (register_DBGDIDR)); - g_num_supported_hw_watchpoints = bits(register_DBGDIDR, 31, 28) + 1; + g_num_supported_hw_watchpoints = Bits32 (register_DBGDIDR, 31, 28) + 1; // if (log) log->Printf ("DBGDIDR=0x%8.8x (number WRP pairs = %u)", register_DBGDIDR, g_num_supported_hw_watchpoints); } return g_num_supported_hw_watchpoints; diff --git a/lldb/source/Plugins/Process/Utility/RegisterContextMacOSXFrameBackchain.cpp b/lldb/source/Plugins/Process/Utility/RegisterContextMacOSXFrameBackchain.cpp index e00913ea1cf..6cfad1eb0dd 100644 --- a/lldb/source/Plugins/Process/Utility/RegisterContextMacOSXFrameBackchain.cpp +++ b/lldb/source/Plugins/Process/Utility/RegisterContextMacOSXFrameBackchain.cpp @@ -147,6 +147,9 @@ RegisterContextMacOSXFrameBackchain::ReadRegister (const RegisterInfo *reg_info, } break; + // TOOD: need a better way to detect when "long double" types are + // the same bytes size as "double" +#if !defined(__arm__) case sizeof (long double): if (sizeof (long double) == sizeof(uint32_t)) { @@ -159,6 +162,7 @@ RegisterContextMacOSXFrameBackchain::ReadRegister (const RegisterInfo *reg_info, return true; } break; +#endif } break; } diff --git a/lldb/source/Symbol/ClangASTContext.cpp b/lldb/source/Symbol/ClangASTContext.cpp index ec997134f60..fb80ab306cd 100644 --- a/lldb/source/Symbol/ClangASTContext.cpp +++ b/lldb/source/Symbol/ClangASTContext.cpp @@ -3059,7 +3059,7 @@ ClangASTContext::GetNumPointeeChildren (clang_type_t clang_type) case clang::BuiltinType::BoundMember: case clang::BuiltinType::Half: case clang::BuiltinType::ARCUnbridgedCast: - case clang::BuiltinType::PseudoObject: + //case clang::BuiltinType::PseudoObject: return 1; } break; @@ -4899,7 +4899,7 @@ ClangASTContext::IsPossibleDynamicType (clang::ASTContext *ast, clang_type_t cla case clang::BuiltinType::BoundMember: case clang::BuiltinType::Half: case clang::BuiltinType::ARCUnbridgedCast: - case clang::BuiltinType::PseudoObject: + //case clang::BuiltinType::PseudoObject: break; } break; @@ -5035,7 +5035,7 @@ ClangASTContext::IsPossibleCPlusPlusDynamicType (clang::ASTContext *ast, clang_t case clang::BuiltinType::BoundMember: case clang::BuiltinType::Half: case clang::BuiltinType::ARCUnbridgedCast: - case clang::BuiltinType::PseudoObject: + //case clang::BuiltinType::PseudoObject: break; } break; diff --git a/lldb/source/Symbol/ClangASTType.cpp b/lldb/source/Symbol/ClangASTType.cpp index 04edef1484f..e30282d0e59 100644 --- a/lldb/source/Symbol/ClangASTType.cpp +++ b/lldb/source/Symbol/ClangASTType.cpp @@ -572,7 +572,7 @@ ClangASTType::GetFormat (clang_type_t clang_type) case clang::BuiltinType::ObjCSel: case clang::BuiltinType::Half: case clang::BuiltinType::ARCUnbridgedCast: - case clang::BuiltinType::PseudoObject: + //case clang::BuiltinType::PseudoObject: return lldb::eFormatHex; } break; diff --git a/lldb/source/Target/StackFrameList.cpp b/lldb/source/Target/StackFrameList.cpp index 958814868ec..76f74f1533c 100644 --- a/lldb/source/Target/StackFrameList.cpp +++ b/lldb/source/Target/StackFrameList.cpp @@ -238,7 +238,7 @@ StackFrameList::Dump (Stream *s) frame->DumpUsingSettingsFormat (s); } else - s->Printf("frame #%ld", std::distance (begin, pos)); + s->Printf("frame #%u", (uint32_t)std::distance (begin, pos)); s->EOL(); } s->EOL(); diff --git a/lldb/tools/debugserver/debugserver.xcodeproj/project.pbxproj b/lldb/tools/debugserver/debugserver.xcodeproj/project.pbxproj index 989636df317..bd67910b70d 100644 --- a/lldb/tools/debugserver/debugserver.xcodeproj/project.pbxproj +++ b/lldb/tools/debugserver/debugserver.xcodeproj/project.pbxproj @@ -476,8 +476,6 @@ ); COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 150; - "GCC_VERSION[sdk=iphoneos*][arch=*]" = 4.2; - "GCC_VERSION[sdk=macosx*][arch=*]" = ""; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; SDKROOT = ""; @@ -533,6 +531,7 @@ 262419A21198A93E00067686 /* BuildAndIntegration */ = { isa = XCBuildConfiguration; buildSettings = { + "ARCHS[sdk=iphoneos*]" = "$(ARCHS_STANDARD_32_BIT)"; "CODE_SIGN_ENTITLEMENTS[sdk=iphoneos*]" = "source/debugserver-entitlements.plist"; COPY_PHASE_STRIP = YES; CURRENT_PROJECT_VERSION = 150; @@ -544,6 +543,7 @@ ); "FRAMEWORK_SEARCH_PATHS[sdk=macosx*][arch=*]" = "$(SDKROOT)/System/Library/PrivateFrameworks"; GCC_PREPROCESSOR_DEFINITIONS = LLDB_DEBUGSERVER_BUILDANDINTEGRATION; + GCC_VERSION = com.apple.compilers.llvmgcc42; HEADER_SEARCH_PATHS = /System/Library/Frameworks/System.framework/PrivateHeaders; INSTALL_PATH = /Developer/usr/bin; LLDB_DEBUGSERVER = 1; @@ -572,6 +572,7 @@ 26CE0596115C31C30022F371 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + "ARCHS[sdk=iphoneos*]" = "$(ARCHS_STANDARD_32_BIT)"; "CODE_SIGN_ENTITLEMENTS[sdk=iphoneos*]" = "source/debugserver-entitlements.plist"; "CODE_SIGN_IDENTITY[sdk=macosx*]" = lldb_codesign; COPY_PHASE_STRIP = YES; @@ -585,6 +586,7 @@ GCC_DYNAMIC_NO_PIC = NO; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = LLDB_DEBUGSERVER_DEBUG; + GCC_VERSION = com.apple.compilers.llvmgcc42; INSTALL_PATH = /Developer/usr/bin; LLDB_DEBUGSERVER = 1; OTHER_CFLAGS = "-Wparentheses"; @@ -612,6 +614,7 @@ 26CE0597115C31C30022F371 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + "ARCHS[sdk=iphoneos*]" = "$(ARCHS_STANDARD_32_BIT)"; "CODE_SIGN_ENTITLEMENTS[sdk=iphoneos*]" = "source/debugserver-entitlements.plist"; "CODE_SIGN_IDENTITY[sdk=macosx*]" = lldb_codesign; COPY_PHASE_STRIP = YES; @@ -624,6 +627,7 @@ ); "FRAMEWORK_SEARCH_PATHS[sdk=macosx*][arch=*]" = "$(SDKROOT)/System/Library/PrivateFrameworks"; GCC_PREPROCESSOR_DEFINITIONS = LLDB_DEBUGSERVER_RELEASE; + GCC_VERSION = com.apple.compilers.llvmgcc42; HEADER_SEARCH_PATHS = /System/Library/Frameworks/System.framework/PrivateHeaders; INSTALL_PATH = /Developer/usr/bin; LLDB_DEBUGSERVER = 1; diff --git a/lldb/tools/debugserver/debugserver.xcodeproj/xcshareddata/xcschemes/debugserver.xcscheme b/lldb/tools/debugserver/debugserver.xcodeproj/xcshareddata/xcschemes/debugserver.xcscheme index 64447c65d8a..9cfaa138c67 100644 --- a/lldb/tools/debugserver/debugserver.xcodeproj/xcshareddata/xcschemes/debugserver.xcscheme +++ b/lldb/tools/debugserver/debugserver.xcodeproj/xcshareddata/xcschemes/debugserver.xcscheme @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <Scheme - version = "1.3"> + version = "1.8"> <BuildAction parallelizeBuildables = "NO" buildImplicitDependencies = "YES"> @@ -28,6 +28,15 @@ buildConfiguration = "Debug"> <Testables> </Testables> + <MacroExpansion> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "26CE0593115C31C20022F371" + BuildableName = "debugserver" + BlueprintName = "debugserver" + ReferencedContainer = "container:debugserver.xcodeproj"> + </BuildableReference> + </MacroExpansion> <EnvironmentVariables> <EnvironmentVariable key = "UBBY" @@ -43,7 +52,9 @@ displayScale = "1.00" launchStyle = "0" useCustomWorkingDirectory = "NO" - buildConfiguration = "Debug"> + buildConfiguration = "Debug" + debugDocumentVersioning = "YES" + allowLocationSimulation = "YES"> <BuildableProductRunnable> <BuildableReference BuildableIdentifier = "primary" @@ -69,7 +80,8 @@ shouldUseLaunchSchemeArgsEnv = "YES" savedToolIdentifier = "" useCustomWorkingDirectory = "NO" - buildConfiguration = "Release"> + buildConfiguration = "Release" + debugDocumentVersioning = "YES"> <BuildableProductRunnable> <BuildableReference BuildableIdentifier = "primary" diff --git a/lldb/tools/debugserver/source/MacOSX/MachProcess.cpp b/lldb/tools/debugserver/source/MacOSX/MachProcess.cpp index ceaa65ab82a..a256acec8d3 100644 --- a/lldb/tools/debugserver/source/MacOSX/MachProcess.cpp +++ b/lldb/tools/debugserver/source/MacOSX/MachProcess.cpp @@ -820,7 +820,7 @@ MachProcess::DisableBreakpoint(nub_break_t breakID, bool remove) } else { - DNBLogThreadedIf(LOG_BREAKPOINTS | LOG_VERBOSE, "MachProcess::DisableBreakpoint ( breakID = %d, remove = %d ) addr = 0x$8.8llx is not enabled", breakID, remove, (uint64_t)addr); + DNBLogThreadedIf(LOG_BREAKPOINTS | LOG_VERBOSE, "MachProcess::DisableBreakpoint ( breakID = %d, remove = %d ) addr = 0x%8.8llx is not enabled", breakID, remove, (uint64_t)addr); // Set verify to true and so we can check if the original opcode is there verify = true; } @@ -1114,7 +1114,7 @@ MachProcess::ExceptionMessageBundleComplete() } else { - DNBLogThreadedIf(LOG_EXCEPTIONS, "%s empty exception messages bundle.", __PRETTY_FUNCTION__, m_exception_messages.size()); + DNBLogThreadedIf(LOG_EXCEPTIONS, "%s empty exception messages bundle (%zu exceptions).", __PRETTY_FUNCTION__, m_exception_messages.size()); } } @@ -1388,7 +1388,7 @@ MachProcess::PrepareForAttach (const char *path, nub_launch_flavor_t launch_flav const char *app_ext = strstr(path, ".app"); if (app_ext == NULL) { - DNBLogThreadedIf(LOG_PROCESS, "%s: path '%s' doesn't contain .app, we can't tell springboard to wait for launch...", path); + DNBLogThreadedIf(LOG_PROCESS, "MachProcess::PrepareForAttach(): path '%s' doesn't contain .app, we can't tell springboard to wait for launch...", path); return NULL; } diff --git a/lldb/tools/debugserver/source/MacOSX/arm/DNBArchImpl.cpp b/lldb/tools/debugserver/source/MacOSX/arm/DNBArchImpl.cpp index c8eba035339..5de65a969a9 100644 --- a/lldb/tools/debugserver/source/MacOSX/arm/DNBArchImpl.cpp +++ b/lldb/tools/debugserver/source/MacOSX/arm/DNBArchImpl.cpp @@ -497,7 +497,7 @@ DNBArchMachARM::DecodeITBlockInstructions(nub_addr_t curr_pc) } else { - DNBLogError("%s: Unable to read opcode bits 31:16 for a 32 bit thumb opcode at pc=0x%8.8lx", __FUNCTION__, pc_in_itblock); + DNBLogError("%s: Unable to read opcode bits 31:16 for a 32 bit thumb opcode at pc=0x%8.8llx", __FUNCTION__, (uint64_t)pc_in_itblock); } } } @@ -1623,7 +1623,7 @@ DNBArchMachARM::EvaluateNextInstructionForSoftwareBreakpointSetup(nub_addr_t cur decodeError = DecodeInstructionUsingDisassembler(currentPCInITBlock, cpsr, &m_last_decode_arm, &m_last_decode_thumb, &nextPCInITBlock); if (decodeError != ARM_SUCCESS) - DNBLogError("unable to disassemble instruction at 0x%8.8lx", currentPCInITBlock); + DNBLogError("unable to disassemble instruction at 0x%8.8llx", (uint64_t)currentPCInITBlock); DNBLogThreadedIf(LOG_STEP | LOG_VERBOSE, "%s: condition=%d", __FUNCTION__, m_last_decode_arm.condition); if (ConditionPassed(m_last_decode_arm.condition, cpsr)) @@ -1676,7 +1676,7 @@ DNBArchMachARM::EvaluateNextInstructionForSoftwareBreakpointSetup(nub_addr_t cur // if targetPC is not known at compile time (PC-relative target), compute targetPC if (!ComputeNextPC(currentPC, m_last_decode_arm, currentPCIsThumb, &targetPC)) { - DNBLogError("%s: Unable to compute targetPC for instruction at 0x%8.8lx", __FUNCTION__, currentPC); + DNBLogError("%s: Unable to compute targetPC for instruction at 0x%8.8llx", __FUNCTION__, (uint64_t)currentPC); targetPC = INVALID_NUB_ADDRESS; } } @@ -1760,7 +1760,7 @@ DNBArchMachARM::DecodeInstructionUsingDisassembler(nub_addr_t curr_pc, uint32_t // Read the ARM opcode if (m_thread->Process()->Task().ReadMemory(curr_pc, 4, &opcode32) != 4) { - DNBLogError("unable to read opcode bits 31:0 for an ARM opcode at 0x%8.8lx", curr_pc); + DNBLogError("unable to read opcode bits 31:0 for an ARM opcode at 0x%8.8llx", (uint64_t)curr_pc); decodeReturnCode = ARM_ERROR; } else @@ -1769,7 +1769,7 @@ DNBArchMachARM::DecodeInstructionUsingDisassembler(nub_addr_t curr_pc, uint32_t decodeReturnCode = ArmDisassembler((uint64_t)curr_pc, opcode32, false, decodedInstruction, NULL, 0, NULL, 0); if (decodeReturnCode != ARM_SUCCESS) - DNBLogError("Unable to decode ARM instruction 0x%8.8x at 0x%8.8lx", opcode32, curr_pc); + DNBLogError("Unable to decode ARM instruction 0x%8.8x at 0x%8.8llx", opcode32, (uint64_t)curr_pc); } break; @@ -1778,7 +1778,7 @@ DNBArchMachARM::DecodeInstructionUsingDisassembler(nub_addr_t curr_pc, uint32_t // Read the a 16 bit Thumb opcode if (m_thread->Process()->Task().ReadMemory(curr_pc, 2, &opcode16) != 2) { - DNBLogError("unable to read opcode bits 15:0 for a thumb opcode at 0x%8.8lx", curr_pc); + DNBLogError("unable to read opcode bits 15:0 for a thumb opcode at 0x%8.8llx", (uint64_t)curr_pc); decodeReturnCode = ARM_ERROR; } else @@ -1794,7 +1794,7 @@ DNBArchMachARM::DecodeInstructionUsingDisassembler(nub_addr_t curr_pc, uint32_t nextPC += 2; if (m_thread->Process()->Task().ReadMemory(curr_pc+2, 2, &opcode16) != 2) { - DNBLogError("unable to read opcode bits 15:0 for a thumb opcode at 0x%8.8lx", curr_pc+2); + DNBLogError("unable to read opcode bits 15:0 for a thumb opcode at 0x%8.8llx", (uint64_t)curr_pc+2); } else { @@ -1803,7 +1803,7 @@ DNBArchMachARM::DecodeInstructionUsingDisassembler(nub_addr_t curr_pc, uint32_t decodeReturnCode = ThumbDisassembler((uint64_t)(curr_pc+2), opcode16, false, false, thumbStaticData, decodedInstruction, NULL, 0, NULL, 0); if (decodeReturnCode != ARM_SUCCESS) - DNBLogError("Unable to decode 2nd half of Thumb instruction 0x%8.4hx at 0x%8.8lx", opcode16, curr_pc+2); + DNBLogError("Unable to decode 2nd half of Thumb instruction 0x%8.4hx at 0x%8.8llx", opcode16, (uint64_t)curr_pc+2); break; } break; @@ -1813,7 +1813,7 @@ DNBArchMachARM::DecodeInstructionUsingDisassembler(nub_addr_t curr_pc, uint32_t break; default: - DNBLogError("Unable to decode Thumb instruction 0x%8.4hx at 0x%8.8lx", opcode16, curr_pc); + DNBLogError("Unable to decode Thumb instruction 0x%8.4hx at 0x%8.8llx", opcode16, (uint64_t)curr_pc); decodeReturnCode = ARM_ERROR; break; } @@ -1878,7 +1878,7 @@ DNBArchMachARM::SetSingleStepSoftwareBreakpoints() if (decodeReturnCode != ARM_SUCCESS) { err = KERN_INVALID_ARGUMENT; - DNBLogError("DNBArchMachARM::SetSingleStepSoftwareBreakpoints: Unable to disassemble instruction at 0x%8.8lx", curr_pc); + DNBLogError("DNBArchMachARM::SetSingleStepSoftwareBreakpoints: Unable to disassemble instruction at 0x%8.8llx", (uint64_t)curr_pc); } } else @@ -1970,7 +1970,7 @@ DNBArchMachARM::SetSingleStepSoftwareBreakpoints() } else { - DNBLogError("FunctionProfiler::SetSingleStepSoftwareBreakpoints(): Unable to read opcode bits 31:16 for a 32 bit thumb opcode at pc=0x%8.8lx", nextPCInITBlock); + DNBLogError("FunctionProfiler::SetSingleStepSoftwareBreakpoints(): Unable to read opcode bits 31:16 for a 32 bit thumb opcode at pc=0x%8.8llx", (uint64_t)nextPCInITBlock); } } } @@ -2198,13 +2198,13 @@ DNBArchMachARM::EnableHardwareBreakpoint (nub_addr_t addr, nub_size_t size) byte_addr_select | // Set the correct byte address select so we only trigger on the correct opcode S_USER | // Which modes should this breakpoint stop in? BCR_ENABLE; // Enable this hardware breakpoint - DNBLogThreadedIf(LOG_BREAKPOINTS, "DNBArchMachARM::EnableHardwareBreakpoint( addr = %8.8p, size = %u ) - BVR%u/BCR%u = 0x%8.8x / 0x%8.8x (Thumb)", - addr, - size, - i, - i, - m_state.dbg.__bvr[i], - m_state.dbg.__bcr[i]); + DNBLogThreadedIf (LOG_BREAKPOINTS, "DNBArchMachARM::EnableHardwareBreakpoint( addr = 0x%8.8llx, size = %zu ) - BVR%u/BCR%u = 0x%8.8x / 0x%8.8x (Thumb)", + (uint64_t)addr, + size, + i, + i, + m_state.dbg.__bvr[i], + m_state.dbg.__bcr[i]); } else if (size == 4) { @@ -2213,13 +2213,13 @@ DNBArchMachARM::EnableHardwareBreakpoint (nub_addr_t addr, nub_size_t size) BAS_IMVA_ALL | // Stop on any of the four bytes following the IMVA S_USER | // Which modes should this breakpoint stop in? BCR_ENABLE; // Enable this hardware breakpoint - DNBLogThreadedIf(LOG_BREAKPOINTS, "DNBArchMachARM::EnableHardwareBreakpoint( addr = %8.8p, size = %u ) - BVR%u/BCR%u = 0x%8.8x / 0x%8.8x (ARM)", - addr, - size, - i, - i, - m_state.dbg.__bvr[i], - m_state.dbg.__bcr[i]); + DNBLogThreadedIf (LOG_BREAKPOINTS, "DNBArchMachARM::EnableHardwareBreakpoint( addr = 0x%8.8llx, size = %zu ) - BVR%u/BCR%u = 0x%8.8x / 0x%8.8x (ARM)", + (uint64_t)addr, + size, + i, + i, + m_state.dbg.__bvr[i], + m_state.dbg.__bcr[i]); } kret = SetDBGState(); @@ -2230,7 +2230,7 @@ DNBArchMachARM::EnableHardwareBreakpoint (nub_addr_t addr, nub_size_t size) } else { - DNBLogThreadedIf(LOG_BREAKPOINTS, "DNBArchMachARM::EnableHardwareBreakpoint(addr = %8.8p, size = %u) => all hardware breakpoint resources are being used.", addr, size); + DNBLogThreadedIf (LOG_BREAKPOINTS, "DNBArchMachARM::EnableHardwareBreakpoint(addr = 0x%8.8llx, size = %zu) => all hardware breakpoint resources are being used.", (uint64_t)addr, size); } } @@ -2267,7 +2267,7 @@ DNBArchMachARM::DisableHardwareBreakpoint (uint32_t hw_index) uint32_t DNBArchMachARM::EnableHardwareWatchpoint (nub_addr_t addr, nub_size_t size, bool read, bool write) { - DNBLogThreadedIf(LOG_WATCHPOINTS, "DNBArchMachARM::EnableHardwareWatchpoint(addr = %8.8p, size = %u, read = %u, write = %u)", addr, size, read, write); + DNBLogThreadedIf(LOG_WATCHPOINTS, "DNBArchMachARM::EnableHardwareWatchpoint(addr = 0x%8.8llx, size = %zu, read = %u, write = %u)", (uint64_t)addr, size, read, write); const uint32_t num_hw_watchpoints = NumSupportedHardwareWatchpoints(); |