5#ifndef V8_INSPECTOR_V8_STACK_TRACE_IMPL_H_
6#define V8_INSPECTOR_V8_STACK_TRACE_IMPL_H_
14#include "src/inspector/protocol/Runtime.h"
69 V8Debugger* debugger,
int maxAsyncDepth)
const;
73 std::unique_ptr<V8StackTrace>
clone()
override;
82 int maxAsyncDepth)
const override;
83 std::unique_ptr<StringBuffer>
toString()
const override;
87 std::vector<V8StackFrame>
frames()
const override;
92 std::shared_ptr<AsyncStackTrace> asyncParent,
104 std::vector<std::shared_ptr<StackFrame>>::const_iterator
m_currentIt;
121 bool skipTopFrame =
false);
123 std::shared_ptr<AsyncStackTrace> stack);
126 V8Debugger* debugger,
int maxAsyncDepth)
const;
129 std::weak_ptr<AsyncStackTrace>
parent()
const;
133 const std::vector<std::shared_ptr<StackFrame>>&
frames()
const {
139 std::vector<std::shared_ptr<StackFrame>> frames,
140 std::shared_ptr<AsyncStackTrace> asyncParent,
std::weak_ptr< AsyncStackTrace > parent() const
static std::shared_ptr< AsyncStackTrace > capture(V8Debugger *, const String16 &description, bool skipTopFrame=false)
const String16 & description() const
std::vector< std::shared_ptr< StackFrame > > m_frames
static uintptr_t store(V8Debugger *debugger, std::shared_ptr< AsyncStackTrace > stack)
const std::vector< std::shared_ptr< StackFrame > > & frames() const
std::unique_ptr< protocol::Runtime::StackTrace > buildInspectorObject(V8Debugger *debugger, int maxAsyncDepth) const
const V8StackTraceId & externalParent() const
AsyncStackTrace(const AsyncStackTrace &)=delete
AsyncStackTrace & operator=(const AsyncStackTrace &)=delete
V8StackTraceId m_externalParent
std::weak_ptr< AsyncStackTrace > m_asyncParent
StackFrame(String16 &&functionName, int scriptId, String16 &&sourceURL, int lineNumber, int columnNumber, bool hasSourceURLComment)
bool isEqual(StackFrame *frame) const
std::unique_ptr< protocol::Runtime::CallFrame > buildInspectorObject(V8InspectorClient *client) const
const String16 & functionName() const
bool m_hasSourceURLComment
const String16 & sourceURL() const
AsyncStackTrace * m_parent
std::vector< std::shared_ptr< StackFrame > >::const_iterator m_currentIt
StackFrameIterator(const V8StackTraceImpl *stackTrace)
std::vector< std::shared_ptr< StackFrame > >::const_iterator m_currentEnd
int topScriptId() const override
static std::unique_ptr< V8StackTraceImpl > capture(V8Debugger *, int maxStackSize)
StringView firstNonEmptySourceURL() const override
std::unique_ptr< protocol::Runtime::StackTrace > buildInspectorObjectImpl(V8Debugger *debugger) const
std::unique_ptr< StringBuffer > toString() const override
static std::unique_ptr< V8StackTraceImpl > create(V8Debugger *, v8::Local< v8::StackTrace >, int maxStackSize)
bool isEmpty() const override
V8StackTraceImpl & operator=(const V8StackTraceImpl &)=delete
V8StackTraceId m_externalParent
StringView topSourceURL() const override
V8StackTraceImpl(const V8StackTraceImpl &)=delete
std::unique_ptr< protocol::Runtime::API::StackTrace > buildInspectorObject(int maxAsyncDepth) const override
bool isEqualIgnoringTopFrame(V8StackTraceImpl *stackTrace) const
int topColumnNumber() const override
~V8StackTraceImpl() override
std::unique_ptr< V8StackTrace > clone() override
std::vector< V8StackFrame > frames() const override
StringView topFunctionName() const override
int topLineNumber() const override
std::weak_ptr< AsyncStackTrace > m_asyncParent
std::vector< std::shared_ptr< StackFrame > > m_frames
static constexpr int kDefaultMaxCallStackSizeToCapture