summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.cpp
diff options
context:
space:
mode:
authorGreg Clayton <gclayton@apple.com>2011-04-25 21:05:07 +0000
committerGreg Clayton <gclayton@apple.com>2011-04-25 21:05:07 +0000
commitffc922e3891002f2668ca8cd9a38f250c7532a93 (patch)
treea7e86f22750e668a02fb69f00f259650caaf04ac /lldb/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.cpp
parent50686bf55c340c5cf190745ed92efb2428b76b76 (diff)
downloadbcm5719-llvm-ffc922e3891002f2668ca8cd9a38f250c7532a93.tar.gz
bcm5719-llvm-ffc922e3891002f2668ca8cd9a38f250c7532a93.zip
More moving things around for the unwind plan and assembly unwind plug-ins.
llvm-svn: 130154
Diffstat (limited to 'lldb/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.cpp')
-rw-r--r--lldb/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.cpp108
1 files changed, 108 insertions, 0 deletions
diff --git a/lldb/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.cpp b/lldb/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.cpp
new file mode 100644
index 00000000000..966b526d6c0
--- /dev/null
+++ b/lldb/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.cpp
@@ -0,0 +1,108 @@
+//===-- UnwindAssemblyInstEmulation.cpp --------------------------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "UnwindAssemblyInstEmulation.h"
+
+#include "llvm-c/EnhancedDisassembly.h"
+
+#include "lldb/Core/Address.h"
+#include "lldb/Core/Error.h"
+#include "lldb/Core/ArchSpec.h"
+#include "lldb/Core/PluginManager.h"
+#include "lldb/Symbol/UnwindPlan.h"
+#include "lldb/Target/ExecutionContext.h"
+#include "lldb/Target/Process.h"
+#include "lldb/Target/RegisterContext.h"
+#include "lldb/Target/Thread.h"
+#include "lldb/Target/Target.h"
+#include "lldb/Target/UnwindAssemblyProfiler.h"
+
+using namespace lldb;
+using namespace lldb_private;
+
+
+
+//-----------------------------------------------------------------------------------------------
+// UnwindAssemblyParser_x86 method definitions
+//-----------------------------------------------------------------------------------------------
+
+bool
+UnwindAssemblyInstEmulation::GetNonCallSiteUnwindPlanFromAssembly (AddressRange& func, Thread& thread, UnwindPlan& unwind_plan)
+{
+ return false;
+}
+
+bool
+UnwindAssemblyInstEmulation::GetFastUnwindPlan (AddressRange& func, Thread& thread, UnwindPlan &unwind_plan)
+{
+ return false;
+}
+
+bool
+UnwindAssemblyInstEmulation::FirstNonPrologueInsn (AddressRange& func, Target& target, Thread* thread, Address& first_non_prologue_insn)
+{
+ return false;
+}
+
+UnwindAssemblyProfiler *
+UnwindAssemblyInstEmulation::CreateInstance (const ArchSpec &arch)
+{
+ return NULL;
+}
+
+
+//------------------------------------------------------------------
+// PluginInterface protocol in UnwindAssemblyParser_x86
+//------------------------------------------------------------------
+
+const char *
+UnwindAssemblyInstEmulation::GetPluginName()
+{
+ return "UnwindAssemblyInstEmulation";
+}
+
+const char *
+UnwindAssemblyInstEmulation::GetShortPluginName()
+{
+ return "unwindassembly.inst-emulation";
+}
+
+
+uint32_t
+UnwindAssemblyInstEmulation::GetPluginVersion()
+{
+ return 1;
+}
+
+void
+UnwindAssemblyInstEmulation::Initialize()
+{
+ PluginManager::RegisterPlugin (GetPluginNameStatic(),
+ GetPluginDescriptionStatic(),
+ CreateInstance);
+}
+
+void
+UnwindAssemblyInstEmulation::Terminate()
+{
+ PluginManager::UnregisterPlugin (CreateInstance);
+}
+
+
+const char *
+UnwindAssemblyInstEmulation::GetPluginNameStatic()
+{
+ return "UnwindAssemblyInstEmulation";
+}
+
+const char *
+UnwindAssemblyInstEmulation::GetPluginDescriptionStatic()
+{
+ return "Instruction emulation based unwind information.";
+}
OpenPOWER on IntegriCloud