llvm/lldb/source/Symbol/UnwindPlan.cpp

//===-- UnwindPlan.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/UnwindPlan.h"

#include "lldb/Target/Process.h"
#include "lldb/Target/RegisterContext.h"
#include "lldb/Target/Target.h"
#include "lldb/Target/Thread.h"
#include "lldb/Utility/ConstString.h"
#include "lldb/Utility/LLDBLog.h"
#include "lldb/Utility/Log.h"
#include "llvm/DebugInfo/DIContext.h"
#include "llvm/DebugInfo/DWARF/DWARFExpression.h"
#include <optional>

usingnamespacelldb;
usingnamespacelldb_private;

bool UnwindPlan::Row::AbstractRegisterLocation::operator==(
    const UnwindPlan::Row::AbstractRegisterLocation &rhs) const {}

// This function doesn't copy the dwarf expression bytes; they must remain in
// allocated memory for the lifespan of this UnwindPlan object.
void UnwindPlan::Row::AbstractRegisterLocation::SetAtDWARFExpression(
    const uint8_t *opcodes, uint32_t len) {}

// This function doesn't copy the dwarf expression bytes; they must remain in
// allocated memory for the lifespan of this UnwindPlan object.
void UnwindPlan::Row::AbstractRegisterLocation::SetIsDWARFExpression(
    const uint8_t *opcodes, uint32_t len) {}

static std::optional<std::pair<lldb::ByteOrder, uint32_t>>
GetByteOrderAndAddrSize(Thread *thread) {}

static void DumpDWARFExpr(Stream &s, llvm::ArrayRef<uint8_t> expr, Thread *thread) {}

void UnwindPlan::Row::AbstractRegisterLocation::Dump(
    Stream &s, const UnwindPlan *unwind_plan, const UnwindPlan::Row *row,
    Thread *thread, bool verbose) const {}

static void DumpRegisterName(Stream &s, const UnwindPlan *unwind_plan,
                             Thread *thread, uint32_t reg_num) {}

bool UnwindPlan::Row::FAValue::
operator==(const UnwindPlan::Row::FAValue &rhs) const {}

void UnwindPlan::Row::FAValue::Dump(Stream &s, const UnwindPlan *unwind_plan,
                                     Thread *thread) const {}

void UnwindPlan::Row::Clear() {}

void UnwindPlan::Row::Dump(Stream &s, const UnwindPlan *unwind_plan,
                           Thread *thread, addr_t base_addr) const {}

UnwindPlan::Row::Row() :{}

bool UnwindPlan::Row::GetRegisterInfo(
    uint32_t reg_num,
    UnwindPlan::Row::AbstractRegisterLocation &register_location) const {}

void UnwindPlan::Row::RemoveRegisterInfo(uint32_t reg_num) {}

void UnwindPlan::Row::SetRegisterInfo(
    uint32_t reg_num,
    const UnwindPlan::Row::AbstractRegisterLocation register_location) {}

bool UnwindPlan::Row::SetRegisterLocationToAtCFAPlusOffset(uint32_t reg_num,
                                                           int32_t offset,
                                                           bool can_replace) {}

bool UnwindPlan::Row::SetRegisterLocationToIsCFAPlusOffset(uint32_t reg_num,
                                                           int32_t offset,
                                                           bool can_replace) {}

bool UnwindPlan::Row::SetRegisterLocationToUndefined(
    uint32_t reg_num, bool can_replace, bool can_replace_only_if_unspecified) {}

bool UnwindPlan::Row::SetRegisterLocationToUnspecified(uint32_t reg_num,
                                                       bool can_replace) {}

bool UnwindPlan::Row::SetRegisterLocationToRegister(uint32_t reg_num,
                                                    uint32_t other_reg_num,
                                                    bool can_replace) {}

bool UnwindPlan::Row::SetRegisterLocationToSame(uint32_t reg_num,
                                                bool must_replace) {}

bool UnwindPlan::Row::SetRegisterLocationToIsDWARFExpression(
    uint32_t reg_num, const uint8_t *opcodes, uint32_t len, bool can_replace) {}

bool UnwindPlan::Row::SetRegisterLocationToIsConstant(uint32_t reg_num,
                                                      uint64_t constant,
                                                      bool can_replace) {}

bool UnwindPlan::Row::operator==(const UnwindPlan::Row &rhs) const {}

void UnwindPlan::AppendRow(const UnwindPlan::RowSP &row_sp) {}

void UnwindPlan::InsertRow(const UnwindPlan::RowSP &row_sp,
                           bool replace_existing) {}

UnwindPlan::RowSP UnwindPlan::GetRowForFunctionOffset(int offset) const {}

bool UnwindPlan::IsValidRowIndex(uint32_t idx) const {}

const UnwindPlan::RowSP UnwindPlan::GetRowAtIndex(uint32_t idx) const {}

const UnwindPlan::RowSP UnwindPlan::GetLastRow() const {}

int UnwindPlan::GetRowCount() const {}

void UnwindPlan::SetPlanValidAddressRange(const AddressRange &range) {}

bool UnwindPlan::PlanValidAtAddress(Address addr) {}

void UnwindPlan::Dump(Stream &s, Thread *thread, lldb::addr_t base_addr) const {}

void UnwindPlan::SetSourceName(const char *source) {}

ConstString UnwindPlan::GetSourceName() const {}

const RegisterInfo *UnwindPlan::GetRegisterInfo(Thread *thread,
                                                uint32_t unwind_reg) const {}