Fixed the Xcode project building of LLVM to be a bit more user friendly:

- If you download and build the sources in the Xcode project, x86_64 builds
  by default using the "llvm.zip" checkpointed LLVM.
- If you delete the "lldb/llvm.zip" and the "lldb/llvm" folder, and build the
  Xcode project will download the right LLVM sources and build them from 
  scratch
- If you have a "lldb/llvm" folder already that contains a "lldb/llvm/lib"
  directory, we will use the sources you have placed in the LLDB directory.
  
Python can now be disabled for platforms that don't support it. 

Changed the way the libllvmclang.a files get used. They now all get built into
arch specific directories and never get merged into universal binaries as this
was causing issues where you would have to go and delete the file if you wanted
to build an extra architecture slice.

llvm-svn: 143678
This commit is contained in:
Greg Clayton 2011-11-04 03:34:56 +00:00
parent 96e0c101fe
commit dce502ede0
34 changed files with 729 additions and 342 deletions

View File

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

View File

@ -205,7 +205,9 @@ protected:
private:
friend class SBThread;
friend class SBInstruction;
#ifndef LLDB_DISABLE_PYTHON
friend class lldb_private::ScriptInterpreterPython;
#endif
#ifndef SWIG

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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",
@ -3726,6 +3717,12 @@
"$(OTHER_CFLAGS)",
);
OTHER_LDFLAGS = (
"-framework",
Carbon,
"-framework",
DebugSymbols,
"-lpython",
"-lllvmclang",
"-framework",
Foundation,
"-framework",
@ -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",
@ -3776,6 +3778,12 @@
"$(OTHER_CFLAGS)",
);
OTHER_LDFLAGS = (
"-framework",
Carbon,
"-framework",
DebugSymbols,
"-lpython",
"-lllvmclang",
"-framework",
Foundation,
"-framework",
@ -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",
@ -4005,6 +4002,12 @@
"$(OTHER_CFLAGS)",
);
OTHER_LDFLAGS = (
"-framework",
Carbon,
"-framework",
DebugSymbols,
"-lpython",
"-lllvmclang",
"-framework",
Foundation,
"-framework",
@ -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;
INSTALL_PATH = "$(DEVELOPER_DIR)/usr/bin";
OTHER_LDFLAGS = (
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;
INSTALL_PATH = "$(DEVELOPER_DIR)/usr/bin";
OTHER_LDFLAGS = (
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;
INSTALL_PATH = "$(DEVELOPER_DIR)/usr/bin";
OTHER_LDFLAGS = (
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";

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -32,7 +32,6 @@ public:
~CommandObjectType ();
};
} // namespace lldb_private
#endif // liblldb_CommandObjectType_h_

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -2276,12 +2276,16 @@ CommandInterpreter::GetScriptInterpreter ()
lldb::ScriptLanguage script_lang = GetDebugger().GetScriptLanguage();
switch (script_lang)
{
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;
case eScriptLanguagePython:
m_script_interpreter_ap.reset (new ScriptInterpreterPython (*this));
break;
default:
break;
};

View File

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

View File

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

View File

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

View File

@ -30,8 +30,6 @@
// Project includes
#include "ProcessKDPLog.h"
#define DEBUGSERVER_BASENAME "debugserver"
using namespace lldb;
using namespace lldb_private;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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