LLDB  mainline
PECallFrameInfo.h
Go to the documentation of this file.
1 //===-- PECallFrameInfo.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_SOURCE_PLUGINS_OBJECTFILE_PECOFF_PECALLFRAMEINFO_H
10 #define LLDB_SOURCE_PLUGINS_OBJECTFILE_PECOFF_PECALLFRAMEINFO_H
11 
14 
15 class ObjectFilePECOFF;
16 
17 namespace llvm {
18 namespace Win64EH {
19 
20 struct RuntimeFunction;
21 
22 }
23 } // namespace llvm
24 
26 public:
27  explicit PECallFrameInfo(ObjectFilePECOFF &object_file,
28  uint32_t exception_dir_rva,
29  uint32_t exception_dir_size);
30 
32  lldb_private::AddressRange &range) override;
33 
34  bool GetUnwindPlan(const lldb_private::Address &addr,
35  lldb_private::UnwindPlan &unwind_plan) override;
36  bool GetUnwindPlan(const lldb_private::AddressRange &range,
37  lldb_private::UnwindPlan &unwind_plan) override;
38 
39 private:
40  const llvm::Win64EH::RuntimeFunction *FindRuntimeFunctionIntersectsWithRange(
41  const lldb_private::AddressRange &range) const;
42 
45 };
46 
47 #endif // LLDB_SOURCE_PLUGINS_OBJECTFILE_PECOFF_PECALLFRAMEINFO_H
llvm
Definition: Debugger.h:49
PECallFrameInfo
Definition: PECallFrameInfo.h:25
PECallFrameInfo::m_exception_dir
lldb_private::DataExtractor m_exception_dir
Definition: PECallFrameInfo.h:44
PECallFrameInfo::GetUnwindPlan
bool GetUnwindPlan(const lldb_private::Address &addr, lldb_private::UnwindPlan &unwind_plan) override
Definition: PECallFrameInfo.cpp:460
ObjectFilePECOFF
Definition: ObjectFilePECOFF.h:17
lldb_private::DataExtractor
Definition: DataExtractor.h:48
lldb_private::AddressRange
Definition: AddressRange.h:25
PECallFrameInfo::FindRuntimeFunctionIntersectsWithRange
const llvm::Win64EH::RuntimeFunction * FindRuntimeFunctionIntersectsWithRange(const lldb_private::AddressRange &range) const
Definition: PECallFrameInfo.cpp:508
lldb_private::CallFrameInfo
Definition: CallFrameInfo.h:16
PECallFrameInfo::m_object_file
ObjectFilePECOFF & m_object_file
Definition: PECallFrameInfo.h:43
uint32_t
lldb_private::Address
Definition: Address.h:59
CallFrameInfo.h
DataExtractor.h
PECallFrameInfo::PECallFrameInfo
PECallFrameInfo(ObjectFilePECOFF &object_file, uint32_t exception_dir_rva, uint32_t exception_dir_size)
Definition: PECallFrameInfo.cpp:437
PECallFrameInfo::GetAddressRange
bool GetAddressRange(lldb_private::Address addr, lldb_private::AddressRange &range) override
Definition: PECallFrameInfo.cpp:444
lldb_private::UnwindPlan
Definition: UnwindPlan.h:53