blob: 1379cd4ce12c43559c87523c4cb9a1a02ff72388 [file] [log] [blame]
Greg Claytonffc922e32011-04-25 21:05:07 +00001//===-- UnwindAssemblyInstEmulation.cpp --------------------------*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#include "UnwindAssemblyInstEmulation.h"
11
12#include "llvm-c/EnhancedDisassembly.h"
13
14#include "lldb/Core/Address.h"
15#include "lldb/Core/Error.h"
16#include "lldb/Core/ArchSpec.h"
17#include "lldb/Core/PluginManager.h"
18#include "lldb/Symbol/UnwindPlan.h"
19#include "lldb/Target/ExecutionContext.h"
20#include "lldb/Target/Process.h"
21#include "lldb/Target/RegisterContext.h"
22#include "lldb/Target/Thread.h"
23#include "lldb/Target/Target.h"
Greg Clayton7be25422011-04-25 21:14:26 +000024#include "lldb/Target/UnwindAssembly.h"
Greg Claytonffc922e32011-04-25 21:05:07 +000025
26using namespace lldb;
27using namespace lldb_private;
28
29
30
31//-----------------------------------------------------------------------------------------------
32// UnwindAssemblyParser_x86 method definitions
33//-----------------------------------------------------------------------------------------------
34
35bool
36UnwindAssemblyInstEmulation::GetNonCallSiteUnwindPlanFromAssembly (AddressRange& func, Thread& thread, UnwindPlan& unwind_plan)
37{
38 return false;
39}
40
41bool
42UnwindAssemblyInstEmulation::GetFastUnwindPlan (AddressRange& func, Thread& thread, UnwindPlan &unwind_plan)
43{
44 return false;
45}
46
47bool
48UnwindAssemblyInstEmulation::FirstNonPrologueInsn (AddressRange& func, Target& target, Thread* thread, Address& first_non_prologue_insn)
49{
50 return false;
51}
52
Greg Clayton7be25422011-04-25 21:14:26 +000053UnwindAssembly *
Greg Claytonffc922e32011-04-25 21:05:07 +000054UnwindAssemblyInstEmulation::CreateInstance (const ArchSpec &arch)
55{
56 return NULL;
57}
58
59
60//------------------------------------------------------------------
61// PluginInterface protocol in UnwindAssemblyParser_x86
62//------------------------------------------------------------------
63
64const char *
65UnwindAssemblyInstEmulation::GetPluginName()
66{
67 return "UnwindAssemblyInstEmulation";
68}
69
70const char *
71UnwindAssemblyInstEmulation::GetShortPluginName()
72{
73 return "unwindassembly.inst-emulation";
74}
75
76
77uint32_t
78UnwindAssemblyInstEmulation::GetPluginVersion()
79{
80 return 1;
81}
82
83void
84UnwindAssemblyInstEmulation::Initialize()
85{
86 PluginManager::RegisterPlugin (GetPluginNameStatic(),
87 GetPluginDescriptionStatic(),
88 CreateInstance);
89}
90
91void
92UnwindAssemblyInstEmulation::Terminate()
93{
94 PluginManager::UnregisterPlugin (CreateInstance);
95}
96
97
98const char *
99UnwindAssemblyInstEmulation::GetPluginNameStatic()
100{
101 return "UnwindAssemblyInstEmulation";
102}
103
104const char *
105UnwindAssemblyInstEmulation::GetPluginDescriptionStatic()
106{
107 return "Instruction emulation based unwind information.";
108}