blob: cf0cc05504f3efb86ddb0da11bd0449b93d900e1 [file] [log] [blame]
Jason Molenda3a4ea242010-09-10 07:49:16 +00001//===-- ArchDefaultUnwindPlan-x86.h ----------------------------*- 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#ifndef liblldb_ArchDefaultUnwindPlan_x86_h_
11#define liblldb_ArchDefaultUnwindPlan_x86_h_
12
13#include "lldb/lldb-private.h"
14#include "lldb/Utility/ArchDefaultUnwindPlan.h"
15#include "lldb/Target/Thread.h"
16#include "lldb/Symbol/UnwindPlan.h"
17
18namespace lldb_private {
19
20class ArchDefaultUnwindPlan_x86 : public lldb_private::ArchDefaultUnwindPlan
21{
22public:
23
24 ~ArchDefaultUnwindPlan_x86 () { }
25
26 virtual lldb_private::UnwindPlan*
27 GetArchDefaultUnwindPlan (Thread& thread, Address current_pc);
28
29 static lldb_private::ArchDefaultUnwindPlan *
30 CreateInstance (const lldb_private::ArchSpec &arch);
31
32 //------------------------------------------------------------------
33 // PluginInterface protocol
34 //------------------------------------------------------------------
35 static void
36 Initialize();
37
38 static void
39 Terminate();
40
41 static const char *
42 GetPluginNameStatic();
43
44 static const char *
45 GetPluginDescriptionStatic();
46
47 virtual const char *
48 GetPluginName();
49
50 virtual const char *
51 GetShortPluginName();
52
53 virtual uint32_t
54 GetPluginVersion();
55
56 virtual void
57 GetPluginCommandHelp (const char *command, lldb_private::Stream *strm);
58
59 virtual lldb_private::Error
60 ExecutePluginCommand (lldb_private::Args &command, lldb_private::Stream *strm);
61
62 virtual lldb_private::Log *
63 EnablePluginLogging (lldb_private::Stream *strm, lldb_private::Args &command);
64
65private:
66 ArchDefaultUnwindPlan_x86(int cpu); // Call CreateInstance instead.
67
68 int m_cpu;
69 lldb_private::UnwindPlan m_32bit_default;
70 lldb_private::UnwindPlan m_64bit_default;
71};
72
73
74} // namespace lldb_private
75
76#endif // liblldb_UnwindAssemblyProfiler_x86_h_