Revert "Improve prologue handling to support functions with multiple entry points."
authorVedant Kumar <vsk@apple.com>
Mon, 12 Mar 2018 20:35:33 +0000 (20:35 +0000)
committerVedant Kumar <vsk@apple.com>
Mon, 12 Mar 2018 20:35:33 +0000 (20:35 +0000)
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

lldb/include/lldb/Core/Architecture.h
lldb/lit/lit.cfg
lldb/lldb.xcodeproj/project.pbxproj
lldb/source/API/SystemInitializerFull.cpp
lldb/source/Breakpoint/BreakpointResolverName.cpp
lldb/source/Plugins/Architecture/CMakeLists.txt
lldb/source/Target/ThreadPlanStepInRange.cpp
lldb/tools/lldb-test/SystemInitializerTest.cpp
lldb/tools/lldb-test/lldb-test.cpp

index 8f163fd..af774ec 100644 (file)
@@ -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;
index 9b620e8..e312d4a 100644 (file)
@@ -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()
index 5d173f2..ca7adfa 100644 (file)
                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 */; };
                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>"; };
                        name = Clang;
                        sourceTree = "<group>";
                };
-               4C14CEEC20570A7D00DEEF94 /* PPC64 */ = {
-                       isa = PBXGroup;
-                       children = (
-                               4C14CEEE20570AA300DEEF94 /* ArchitecturePPC64.cpp */,
-                               4C14CEED20570AA300DEEF94 /* ArchitecturePPC64.h */,
-                       );
-                       name = PPC64;
-                       sourceTree = "<group>";
-               };
                4CC7C64B1D5298AB0076FF94 /* OCaml */ = {
                        isa = PBXGroup;
                        children = (
                AF2E029F1FA2CE8A00A86C34 /* Architecture */ = {
                        isa = PBXGroup;
                        children = (
-                               4C14CEEC20570A7D00DEEF94 /* PPC64 */,
                                AF2E02A01FA2CE9900A86C34 /* Arm */,
                        );
                        path = Architecture;
                                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 */,
index 8f6f05c..a27b649 100644 (file)
@@ -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();
 
index dd51bff..468de35 100644 (file)
 #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);
-            }
           }
         }
 
index 015c784..6c5a995 100644 (file)
 // 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);
index fef28e4..a58be5c 100644 (file)
@@ -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();
 
index 3d17ed8..29d72f9 100644 (file)
@@ -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();