LLDB mainline
Classes | Typedefs | Functions
StackFrameList.cpp File Reference
#include "lldb/Target/StackFrameList.h"
#include "lldb/Breakpoint/Breakpoint.h"
#include "lldb/Breakpoint/BreakpointLocation.h"
#include "lldb/Core/Debugger.h"
#include "lldb/Core/SourceManager.h"
#include "lldb/Host/StreamFile.h"
#include "lldb/Symbol/Block.h"
#include "lldb/Symbol/Function.h"
#include "lldb/Symbol/Symbol.h"
#include "lldb/Target/Process.h"
#include "lldb/Target/RegisterContext.h"
#include "lldb/Target/StackFrame.h"
#include "lldb/Target/StackFrameRecognizer.h"
#include "lldb/Target/StopInfo.h"
#include "lldb/Target/Target.h"
#include "lldb/Target/Thread.h"
#include "lldb/Target/Unwind.h"
#include "lldb/Utility/LLDBLog.h"
#include "lldb/Utility/Log.h"
#include "llvm/ADT/SmallPtrSet.h"
#include <memory>

Go to the source code of this file.

Classes

struct  CallDescriptor
 A sequence of calls that comprise some portion of a backtrace. More...
 

Typedefs

using CallSequence = std::vector< CallDescriptor >
 

Functions

static void FindInterveningFrames (Function &begin, Function &end, ExecutionContext &exe_ctx, Target &target, addr_t return_pc, CallSequence &path, ModuleList &images, Log *log)
 Find the unique path through the call graph from begin (with return PC return_pc) to end.
 
static bool CompareStackID (const StackFrameSP &stack_sp, const StackID &stack_id)
 

Typedef Documentation

◆ CallSequence

using CallSequence = std::vector<CallDescriptor>

Definition at line 153 of file StackFrameList.cpp.

Function Documentation

◆ CompareStackID()

static bool CompareStackID ( const StackFrameSP stack_sp,
const StackID stack_id 
)
static

◆ FindInterveningFrames()

static void FindInterveningFrames ( Function begin,
Function end,
ExecutionContext exe_ctx,
Target target,
addr_t  return_pc,
CallSequence path,
ModuleList images,
Log log 
)
static

Find the unique path through the call graph from begin (with return PC return_pc) to end.

On success this path is stored into path, and on failure path is unchanged. This function doesn't currently access StackFrameLists at all, it only looks at the frame set in the ExecutionContext it passes around.

Definition at line 160 of file StackFrameList.cpp.

References lldb_private::Function::GetCallEdgeForReturnAddress(), lldb_private::Function::GetCallEdges(), lldb_private::CallEdge::GetCallee(), lldb_private::Function::GetDisplayName(), lldb_private::Function::GetTailCallingEdges(), and LLDB_LOG.

Referenced by lldb_private::StackFrameList::SynthesizeTailCallFrames().