LLDB
mainline
llvm-project
lldb
include
lldb
Target
UnwindAssembly.h
Go to the documentation of this file.
1
//===-- UnwindAssembly.h --------------------------------*- C++ -*-===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
9
#ifndef LLDB_TARGET_UNWINDASSEMBLY_H
10
#define LLDB_TARGET_UNWINDASSEMBLY_H
11
12
#include "
lldb/Core/PluginInterface.h
"
13
#include "
lldb/Utility/ArchSpec.h
"
14
#include "
lldb/lldb-private.h
"
15
16
namespace
lldb_private
{
17
18
class
UnwindAssembly
:
public
std::enable_shared_from_this<UnwindAssembly>,
19
public
PluginInterface
{
20
public
:
21
static
lldb::UnwindAssemblySP
FindPlugin
(
const
ArchSpec
&arch);
22
23
virtual
bool
24
GetNonCallSiteUnwindPlanFromAssembly
(
AddressRange
&func,
Thread
&thread,
25
UnwindPlan
&unwind_plan) = 0;
26
27
virtual
bool
AugmentUnwindPlanFromCallSite
(
AddressRange
&func,
Thread
&thread,
28
UnwindPlan
&unwind_plan) = 0;
29
30
virtual
bool
GetFastUnwindPlan
(
AddressRange
&func,
Thread
&thread,
31
UnwindPlan
&unwind_plan) = 0;
32
33
// thread may be NULL in which case we only use the Target (e.g. if this is
34
// called pre-process-launch).
35
virtual
bool
36
FirstNonPrologueInsn
(
AddressRange
&func,
37
const
lldb_private::ExecutionContext
&exe_ctx,
38
Address
&first_non_prologue_insn) = 0;
39
40
protected
:
41
UnwindAssembly
(
const
ArchSpec
&arch);
42
ArchSpec
m_arch
;
43
};
44
45
}
// namespace lldb_private
46
47
#endif
// LLDB_TARGET_UNWINDASSEMBLY_H
ArchSpec.h
PluginInterface.h
lldb_private::AddressRange
A section + offset based address range class.
Definition:
AddressRange.h:25
lldb_private::Address
A section + offset based address class.
Definition:
Address.h:62
lldb_private::ArchSpec
An architecture specification class.
Definition:
ArchSpec.h:31
lldb_private::ExecutionContext
"lldb/Target/ExecutionContext.h" A class that contains an execution context.
Definition:
ExecutionContext.h:292
lldb_private::PluginInterface
Definition:
PluginInterface.h:16
lldb_private::Thread
Definition:
Thread.h:69
lldb_private::UnwindAssembly
Definition:
UnwindAssembly.h:19
lldb_private::UnwindAssembly::FirstNonPrologueInsn
virtual bool FirstNonPrologueInsn(AddressRange &func, const lldb_private::ExecutionContext &exe_ctx, Address &first_non_prologue_insn)=0
lldb_private::UnwindAssembly::m_arch
ArchSpec m_arch
Definition:
UnwindAssembly.h:42
lldb_private::UnwindAssembly::GetNonCallSiteUnwindPlanFromAssembly
virtual bool GetNonCallSiteUnwindPlanFromAssembly(AddressRange &func, Thread &thread, UnwindPlan &unwind_plan)=0
lldb_private::UnwindAssembly::AugmentUnwindPlanFromCallSite
virtual bool AugmentUnwindPlanFromCallSite(AddressRange &func, Thread &thread, UnwindPlan &unwind_plan)=0
lldb_private::UnwindAssembly::FindPlugin
static lldb::UnwindAssemblySP FindPlugin(const ArchSpec &arch)
Definition:
UnwindAssembly.cpp:17
lldb_private::UnwindAssembly::GetFastUnwindPlan
virtual bool GetFastUnwindPlan(AddressRange &func, Thread &thread, UnwindPlan &unwind_plan)=0
lldb_private::UnwindPlan
Definition:
UnwindPlan.h:53
lldb-private.h
lldb_private
A class that represents a running process on the host machine.
Definition:
SBAddressRange.h:14
lldb::UnwindAssemblySP
std::shared_ptr< lldb_private::UnwindAssembly > UnwindAssemblySP
Definition:
lldb-forward.h:478
Generated on Wed Nov 20 2024 18:14:39 for LLDB by
1.9.6