diff options
author | Vedant Kumar <vsk@apple.com> | 2018-03-12 20:35:33 +0000 |
---|---|---|
committer | Vedant Kumar <vsk@apple.com> | 2018-03-12 20:35:33 +0000 |
commit | d1faa56f3ddfb104aad9a7b6000eca869c42d8c4 (patch) | |
tree | 873b12ee46164baf7699ac1162825c2d65960661 | |
parent | e3f3ccf8866ba5603859d92a7c42d70b7201f03b (diff) | |
download | bcm5719-llvm-d1faa56f3ddfb104aad9a7b6000eca869c42d8c4.tar.gz bcm5719-llvm-d1faa56f3ddfb104aad9a7b6000eca869c42d8c4.zip |
Revert "Improve prologue handling to support functions with multiple entry points."
This reverts commit r327318. It breaks the Xcode and CMake Darwin
builders:
clang: error: no such file or directory:
'.../source/Plugins/Architecture/PPC64/ArchitecturePPC64.cpp'
clang: error: no input files
More details are in https://reviews.llvm.org/D42582.
llvm-svn: 327327
-rw-r--r-- | lldb/include/lldb/Core/Architecture.h | 34 | ||||
-rw-r--r-- | lldb/lit/lit.cfg | 2 | ||||
-rw-r--r-- | lldb/lldb.xcodeproj/project.pbxproj | 14 | ||||
-rw-r--r-- | lldb/source/API/SystemInitializerFull.cpp | 2 | ||||
-rw-r--r-- | lldb/source/Breakpoint/BreakpointResolverName.cpp | 8 | ||||
-rw-r--r-- | lldb/source/Plugins/Architecture/CMakeLists.txt | 1 | ||||
-rw-r--r-- | lldb/source/Target/ThreadPlanStepInRange.cpp | 13 | ||||
-rw-r--r-- | lldb/tools/lldb-test/SystemInitializerTest.cpp | 2 | ||||
-rw-r--r-- | lldb/tools/lldb-test/lldb-test.cpp | 9 |
9 files changed, 3 insertions, 82 deletions
diff --git a/lldb/include/lldb/Core/Architecture.h b/lldb/include/lldb/Core/Architecture.h index 8f163fd0c9d..af774ecdaf9 100644 --- a/lldb/include/lldb/Core/Architecture.h +++ b/lldb/include/lldb/Core/Architecture.h @@ -33,40 +33,6 @@ public: //------------------------------------------------------------------ virtual void OverrideStopInfo(Thread &thread) = 0; - //------------------------------------------------------------------ - /// This method is used to get the number of bytes that should be - /// skipped, from function start address, to reach the first - /// instruction after the prologue. If overrode, it must return - /// non-zero only if the current address matches one of the known - /// function entry points. - /// - /// This method is called only if the standard platform-independent - /// code fails to get the number of bytes to skip, giving the plugin - /// a chance to try to find the missing info. - /// - /// This is specifically used for PPC64, where functions may have - /// more than one entry point, global and local, so both should - /// be compared with current address, in order to find out the - /// number of bytes that should be skipped, in case we are stopped - /// at either function entry point. - //------------------------------------------------------------------ - virtual size_t GetBytesToSkip(Symbol &func, const Address &curr_addr) const { - return 0; - } - - //------------------------------------------------------------------ - /// Adjust function breakpoint address, if needed. In some cases, - /// the function start address is not the right place to set the - /// breakpoint, specially in functions with multiple entry points. - /// - /// This is specifically used for PPC64, for functions that have - /// both a global and a local entry point. In this case, the - /// breakpoint is adjusted to the first function address reached - /// by both entry points. - //------------------------------------------------------------------ - virtual void AdjustBreakpointAddress(const Symbol &func, - Address &addr) const {} - private: Architecture(const Architecture &) = delete; void operator=(const Architecture &) = delete; diff --git a/lldb/lit/lit.cfg b/lldb/lit/lit.cfg index 9b620e8d322..e312d4aa9cf 100644 --- a/lldb/lit/lit.cfg +++ b/lldb/lit/lit.cfg @@ -155,8 +155,6 @@ if re.search(r'ARM', llvm_config_output_list[2]): config.available_features.add('arm') if re.search(r'Mips', llvm_config_output_list[2]): config.available_features.add('mips') -if re.search(r'PowerPC', llvm_config_output_list[2]): - config.available_features.add('powerpc') if re.search(r'X86', llvm_config_output_list[2]): config.available_features.add('x86') llvm_config_cmd.wait() diff --git a/lldb/lldb.xcodeproj/project.pbxproj b/lldb/lldb.xcodeproj/project.pbxproj index 5d173f200a7..ca7adfac98d 100644 --- a/lldb/lldb.xcodeproj/project.pbxproj +++ b/lldb/lldb.xcodeproj/project.pbxproj @@ -712,7 +712,6 @@ 49F811F31E931B2100F4E163 /* CPlusPlusNameParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 49F811EF1E931B1500F4E163 /* CPlusPlusNameParser.cpp */; }; 4C0083401B9F9BA900D5CF24 /* UtilityFunction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C00833F1B9F9BA900D5CF24 /* UtilityFunction.cpp */; }; 4C05332B1F62121E00DED368 /* SBBreakpointOptionCommon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C0533291F6211FB00DED368 /* SBBreakpointOptionCommon.cpp */; }; - 4C14CEF020570AA300DEEF94 /* ArchitecturePPC64.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C14CEEE20570AA300DEEF94 /* ArchitecturePPC64.cpp */; }; 4C2479BD1BA39295009C9A7B /* FunctionCaller.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C0083321B9A5DE200D5CF24 /* FunctionCaller.cpp */; }; 4C3ADCD61810D88B00357218 /* BreakpointResolverFileRegex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CAA56141422D986001FFA01 /* BreakpointResolverFileRegex.cpp */; }; 4C4EB7811E6A4DCC002035C0 /* DumpDataExtractor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C4EB77F1E6A4DB8002035C0 /* DumpDataExtractor.cpp */; }; @@ -2542,8 +2541,6 @@ 4C08CDEB11C81F1E001610A8 /* ThreadSpec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ThreadSpec.h; path = include/lldb/Target/ThreadSpec.h; sourceTree = "<group>"; }; 4C09CB73116BD98B00C7A725 /* CommandCompletions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CommandCompletions.h; path = include/lldb/Interpreter/CommandCompletions.h; sourceTree = "<group>"; }; 4C09CB74116BD98B00C7A725 /* CommandCompletions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CommandCompletions.cpp; path = source/Commands/CommandCompletions.cpp; sourceTree = "<group>"; }; - 4C14CEED20570AA300DEEF94 /* ArchitecturePPC64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ArchitecturePPC64.h; path = PPC64/ArchitecturePPC64.h; sourceTree = "<group>"; }; - 4C14CEEE20570AA300DEEF94 /* ArchitecturePPC64.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ArchitecturePPC64.cpp; path = PPC64/ArchitecturePPC64.cpp; sourceTree = "<group>"; }; 4C2479BE1BA39843009C9A7B /* ExpressionParser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ExpressionParser.h; path = include/lldb/Expression/ExpressionParser.h; sourceTree = "<group>"; }; 4C29E77D1BA2403F00DFF855 /* ExpressionTypeSystemHelper.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; name = ExpressionTypeSystemHelper.h; path = include/lldb/Expression/ExpressionTypeSystemHelper.h; sourceTree = "<group>"; }; 4C2FAE2E135E3A70001EDE44 /* SharedCluster.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SharedCluster.h; path = include/lldb/Utility/SharedCluster.h; sourceTree = "<group>"; }; @@ -5966,15 +5963,6 @@ name = Clang; sourceTree = "<group>"; }; - 4C14CEEC20570A7D00DEEF94 /* PPC64 */ = { - isa = PBXGroup; - children = ( - 4C14CEEE20570AA300DEEF94 /* ArchitecturePPC64.cpp */, - 4C14CEED20570AA300DEEF94 /* ArchitecturePPC64.h */, - ); - name = PPC64; - sourceTree = "<group>"; - }; 4CC7C64B1D5298AB0076FF94 /* OCaml */ = { isa = PBXGroup; children = ( @@ -6612,7 +6600,6 @@ AF2E029F1FA2CE8A00A86C34 /* Architecture */ = { isa = PBXGroup; children = ( - 4C14CEEC20570A7D00DEEF94 /* PPC64 */, AF2E02A01FA2CE9900A86C34 /* Arm */, ); path = Architecture; @@ -7624,7 +7611,6 @@ 943BDEFE1AA7B2F800789CE8 /* LLDBAssert.cpp in Sources */, 26474CB418D0CB180073DEBA /* RegisterContextLinux_x86_64.cpp in Sources */, 2689006613353E0E00698AC0 /* DWARFExpression.cpp in Sources */, - 4C14CEF020570AA300DEEF94 /* ArchitecturePPC64.cpp in Sources */, 2689006713353E0E00698AC0 /* ASTDumper.cpp in Sources */, AFC234091AF85CE100CDE8B6 /* CommandObjectLanguage.cpp in Sources */, 2689006813353E0E00698AC0 /* ASTResultSynthesizer.cpp in Sources */, diff --git a/lldb/source/API/SystemInitializerFull.cpp b/lldb/source/API/SystemInitializerFull.cpp index 8f6f05cd437..a27b649a519 100644 --- a/lldb/source/API/SystemInitializerFull.cpp +++ b/lldb/source/API/SystemInitializerFull.cpp @@ -43,7 +43,6 @@ #include "Plugins/ABI/SysV-s390x/ABISysV_s390x.h" #include "Plugins/ABI/SysV-x86_64/ABISysV_x86_64.h" #include "Plugins/Architecture/Arm/ArchitectureArm.h" -#include "Plugins/Architecture/PPC64/ArchitecturePPC64.h" #include "Plugins/Disassembler/llvm/DisassemblerLLVMC.h" #include "Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.h" #include "Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.h" @@ -309,7 +308,6 @@ void SystemInitializerFull::Initialize() { ABISysV_s390x::Initialize(); ArchitectureArm::Initialize(); - ArchitecturePPC64::Initialize(); DisassemblerLLVMC::Initialize(); diff --git a/lldb/source/Breakpoint/BreakpointResolverName.cpp b/lldb/source/Breakpoint/BreakpointResolverName.cpp index dd51bff11b8..468de35db0e 100644 --- a/lldb/source/Breakpoint/BreakpointResolverName.cpp +++ b/lldb/source/Breakpoint/BreakpointResolverName.cpp @@ -16,13 +16,11 @@ #include "Plugins/Language/CPlusPlus/CPlusPlusLanguage.h" #include "Plugins/Language/ObjC/ObjCLanguage.h" #include "lldb/Breakpoint/BreakpointLocation.h" -#include "lldb/Core/Architecture.h" #include "lldb/Core/Module.h" #include "lldb/Symbol/Block.h" #include "lldb/Symbol/Function.h" #include "lldb/Symbol/Symbol.h" #include "lldb/Symbol/SymbolContext.h" -#include "lldb/Target/Target.h" #include "lldb/Utility/Log.h" #include "lldb/Utility/StreamString.h" @@ -367,12 +365,6 @@ BreakpointResolverName::SearchCallback(SearchFilter &filter, sc.symbol->GetPrologueByteSize(); if (prologue_byte_size) break_addr.SetOffset(break_addr.GetOffset() + prologue_byte_size); - else { - Architecture *arch = - m_breakpoint->GetTarget().GetArchitecturePlugin(); - if (arch) - arch->AdjustBreakpointAddress(*sc.symbol, break_addr); - } } } diff --git a/lldb/source/Plugins/Architecture/CMakeLists.txt b/lldb/source/Plugins/Architecture/CMakeLists.txt index 01365a64cf9..5abaa8e6823 100644 --- a/lldb/source/Plugins/Architecture/CMakeLists.txt +++ b/lldb/source/Plugins/Architecture/CMakeLists.txt @@ -1,2 +1 @@ add_subdirectory(Arm) -add_subdirectory(PPC64) diff --git a/lldb/source/Target/ThreadPlanStepInRange.cpp b/lldb/source/Target/ThreadPlanStepInRange.cpp index 015c784ff4b..6c5a9954f23 100644 --- a/lldb/source/Target/ThreadPlanStepInRange.cpp +++ b/lldb/source/Target/ThreadPlanStepInRange.cpp @@ -12,13 +12,11 @@ // Other libraries and framework includes // Project includes #include "lldb/Target/ThreadPlanStepInRange.h" -#include "lldb/Core/Architecture.h" #include "lldb/Core/Module.h" #include "lldb/Symbol/Function.h" #include "lldb/Symbol/Symbol.h" #include "lldb/Target/Process.h" #include "lldb/Target/RegisterContext.h" -#include "lldb/Target/SectionLoadList.h" #include "lldb/Target/Target.h" #include "lldb/Target/Thread.h" #include "lldb/Target/ThreadPlanStepOut.h" @@ -279,17 +277,6 @@ bool ThreadPlanStepInRange::ShouldStop(Event *event_ptr) { bytes_to_skip = sc.symbol->GetPrologueByteSize(); } - if (bytes_to_skip == 0 && sc.symbol) { - TargetSP target = m_thread.CalculateTarget(); - Architecture *arch = target->GetArchitecturePlugin(); - if (arch) { - Address curr_sec_addr; - target->GetSectionLoadList().ResolveLoadAddress(curr_addr, - curr_sec_addr); - bytes_to_skip = arch->GetBytesToSkip(*sc.symbol, curr_sec_addr); - } - } - if (bytes_to_skip != 0) { func_start_address.Slide(bytes_to_skip); log = lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_STEP); diff --git a/lldb/tools/lldb-test/SystemInitializerTest.cpp b/lldb/tools/lldb-test/SystemInitializerTest.cpp index fef28e4675c..a58be5cd6ca 100644 --- a/lldb/tools/lldb-test/SystemInitializerTest.cpp +++ b/lldb/tools/lldb-test/SystemInitializerTest.cpp @@ -33,7 +33,6 @@ #include "Plugins/ABI/SysV-s390x/ABISysV_s390x.h" #include "Plugins/ABI/SysV-x86_64/ABISysV_x86_64.h" #include "Plugins/Architecture/Arm/ArchitectureArm.h" -#include "Plugins/Architecture/PPC64/ArchitecturePPC64.h" #include "Plugins/Disassembler/llvm/DisassemblerLLVMC.h" #include "Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.h" #include "Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.h" @@ -163,7 +162,6 @@ void SystemInitializerTest::Initialize() { ABISysV_s390x::Initialize(); ArchitectureArm::Initialize(); - ArchitecturePPC64::Initialize(); DisassemblerLLVMC::Initialize(); diff --git a/lldb/tools/lldb-test/lldb-test.cpp b/lldb/tools/lldb-test/lldb-test.cpp index 3d17ed8e2fb..29d72f9c40b 100644 --- a/lldb/tools/lldb-test/lldb-test.cpp +++ b/lldb/tools/lldb-test/lldb-test.cpp @@ -98,12 +98,9 @@ void opts::breakpoint::dumpState(const BreakpointList &List, LinePrinter &P) { AutoIndent Indent(P, 2); P.formatLine("Enabled: {0}", Loc->IsEnabled()); P.formatLine("Resolved: {0}", Loc->IsResolved()); - SymbolContext sc; - Loc->GetAddress().CalculateSymbolContext(&sc); - lldb_private::StreamString S; - sc.DumpStopContext(&S, BP->GetTarget().GetProcessSP().get(), - Loc->GetAddress(), false, true, false, true, true); - P.formatLine("Address: {0}", S.GetString()); + P.formatLine("Address: {0}+{1:x}", + Loc->GetAddress().GetSection()->GetName(), + Loc->GetAddress().GetOffset()); } } P.NewLine(); |