llvm/lldb/source/Symbol/UnwindTable.cpp

//===-- UnwindTable.cpp ---------------------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//

#include "lldb/Symbol/UnwindTable.h"

#include <cstdio>
#include <optional>

#include "lldb/Core/Module.h"
#include "lldb/Core/Section.h"
#include "lldb/Symbol/ArmUnwindInfo.h"
#include "lldb/Symbol/CallFrameInfo.h"
#include "lldb/Symbol/CompactUnwindInfo.h"
#include "lldb/Symbol/DWARFCallFrameInfo.h"
#include "lldb/Symbol/FuncUnwinders.h"
#include "lldb/Symbol/ObjectFile.h"
#include "lldb/Symbol/SymbolContext.h"
#include "lldb/Symbol/SymbolVendor.h"

// There is one UnwindTable object per ObjectFile. It contains a list of Unwind
// objects -- one per function, populated lazily -- for the ObjectFile. Each
// Unwind object has multiple UnwindPlans for different scenarios.

usingnamespacelldb;
usingnamespacelldb_private;

UnwindTable::UnwindTable(Module &module)
    :{}

// We can't do some of this initialization when the ObjectFile is running its
// ctor; delay doing it until needed for something.
void UnwindTable::Initialize() {}

void UnwindTable::ModuleWasUpdated() {}

UnwindTable::~UnwindTable() = default;

std::optional<AddressRange>
UnwindTable::GetAddressRange(const Address &addr, const SymbolContext &sc) {}

FuncUnwindersSP
UnwindTable::GetFuncUnwindersContainingAddress(const Address &addr,
                                               SymbolContext &sc) {}

// Ignore any existing FuncUnwinders for this function, create a new one and
// don't add it to the UnwindTable.  This is intended for use by target modules
// show-unwind where we want to create new UnwindPlans, not re-use existing
// ones.
FuncUnwindersSP UnwindTable::GetUncachedFuncUnwindersContainingAddress(
    const Address &addr, const SymbolContext &sc) {}

void UnwindTable::Dump(Stream &s) {}

lldb_private::CallFrameInfo *UnwindTable::GetObjectFileUnwindInfo() {}

DWARFCallFrameInfo *UnwindTable::GetEHFrameInfo() {}

DWARFCallFrameInfo *UnwindTable::GetDebugFrameInfo() {}

CompactUnwindInfo *UnwindTable::GetCompactUnwindInfo() {}

ArmUnwindInfo *UnwindTable::GetArmUnwindInfo() {}

SymbolFile *UnwindTable::GetSymbolFile() {}

ArchSpec UnwindTable::GetArchitecture() {}

bool UnwindTable::GetAllowAssemblyEmulationUnwindPlans() {}