V8 Project
|
#include <frames.h>
Public Member Functions | |
virtual Type | type () const |
JSFunction * | function () const |
Object * | receiver () const |
void | set_receiver (Object *value) |
Address | GetParameterSlot (int index) const |
Object * | GetParameter (int index) const |
int | ComputeParametersCount () const |
Address | GetOperandSlot (int index) const |
Object * | GetOperand (int index) const |
int | ComputeOperandsCount () const |
void | SaveOperandStack (FixedArray *store, int *stack_handler_index) const |
void | RestoreOperandStack (FixedArray *store, int stack_handler_index) |
void | SetParameterValue (int index, Object *value) const |
bool | IsConstructor () const |
bool | has_adapted_arguments () const |
int | GetArgumentsLength () const |
virtual void | Iterate (ObjectVisitor *v) const |
virtual void | Print (StringStream *accumulator, PrintMode mode, int index) const |
virtual Code * | unchecked_code () const |
virtual int | GetInlineCount () |
virtual void | GetFunctions (List< JSFunction * > *functions) |
virtual void | Summarize (List< FrameSummary > *frames) |
![]() | |
virtual bool | is_standard () const |
Object * | context () const |
Object * | GetExpression (int index) const |
void | SetExpression (int index, Object *value) |
int | ComputeExpressionsCount () const |
virtual void | SetCallerFp (Address caller_fp) |
![]() | |
int | GetLineNumber () const |
Returns the number, 1-based, of the line for the associate function call. More... | |
int | GetColumn () const |
Returns the 1-based column offset on the line for the associated function call. More... | |
int | GetScriptId () const |
Returns the id of the script for the function for this StackFrame. More... | |
Local< String > | GetScriptName () const |
Returns the name of the resource that contains the script for the function for this StackFrame. More... | |
Local< String > | GetScriptNameOrSourceURL () const |
Returns the name of the resource that contains the script for the function for this StackFrame or sourceURL value if the script name is undefined and its source ends with //# sourceURL=... More... | |
Local< String > | GetFunctionName () const |
Returns the name of the function associated with this stack frame. More... | |
bool | IsEval () const |
Returns whether or not the associated function is compiled via a call to eval(). More... | |
bool | IsConstructor () const |
Returns whether or not the associated function is called as a constructor via "new". More... | |
Static Public Member Functions | |
static Register | fp_register () |
static Register | context_register () |
static Register | constant_pool_pointer_register () |
static JavaScriptFrame * | cast (StackFrame *frame) |
static void | PrintFunctionAndOffset (JSFunction *function, Code *code, Address pc, FILE *file, bool print_line_number) |
static void | PrintTop (Isolate *isolate, FILE *file, bool print_args, bool print_line_number) |
![]() | |
static Object * | GetExpression (Address fp, int index) |
static StandardFrame * | cast (StackFrame *frame) |
Protected Member Functions | |
JavaScriptFrame (StackFrameIteratorBase *iterator) | |
virtual Address | GetCallerStackPointer () const |
virtual int | GetNumberOfIncomingArguments () const |
void | IterateArguments (ObjectVisitor *v) const |
![]() | |
StandardFrame (StackFrameIteratorBase *iterator) | |
virtual void | ComputeCallerState (State *state) const |
Address | caller_fp () const |
Address | caller_pc () const |
void | IterateExpressions (ObjectVisitor *v) const |
Address | GetExpressionAddress (int n) const |
bool | IsExpressionInsideHandler (int n) const |
void | IterateCompiledFrame (ObjectVisitor *v) const |
Private Member Functions | |
Object * | function_slot_object () const |
Friends | |
class | StackFrameIteratorBase |
Additional Inherited Members | |
![]() | |
static Address | ComputePCAddress (Address fp) |
static Address | ComputeConstantPoolAddress (Address fp) |
static Address | GetExpressionAddress (Address fp, int n) |
static bool | IsArgumentsAdaptorFrame (Address fp) |
static bool | IsConstructFrame (Address fp) |
|
inlineexplicitprotected |
Definition at line 204 of file frames-inl.h.
|
inlinestatic |
Definition at line 612 of file frames.h.
References DCHECK.
Referenced by v8::internal::CheckActivation(), v8::internal::DropActivationsInActiveThreadImpl(), and v8::internal::IC::GetSharedFunctionInfo().
|
inline |
Definition at line 238 of file frames-inl.h.
References DCHECK, v8::internal::fp, v8::internal::IsAligned(), v8::internal::JavaScriptFrameConstants::kLocal0Offset, v8::internal::kPointerSize, v8::internal::kPointerSizeLog2, v8::internal::sp, and type().
Referenced by GetOperandSlot(), RestoreOperandStack(), v8::internal::RUNTIME_FUNCTION(), and SaveOperandStack().
|
inline |
Definition at line 562 of file frames.h.
Referenced by v8::internal::GetCallerArguments(), v8::internal::GetFunctionArguments(), v8::internal::FrameInspector::GetParametersCount(), GetParameterSlot(), Print(), v8::internal::ArgumentsAdaptorFrame::Print(), PrintTop(), v8::internal::RUNTIME_FUNCTION(), and v8::internal::OptimizedFrame::Summarize().
|
static |
Referenced by v8::internal::Deoptimizer::DoComputeJSFrame().
|
static |
Referenced by v8::internal::Deoptimizer::DoComputeJSFrame().
|
static |
Referenced by v8::internal::Deoptimizer::DoComputeJSFrame(), and v8::internal::Deoptimizer::DoComputeOutputFrames().
|
inline |
Definition at line 265 of file frames-inl.h.
References function_slot_object().
Referenced by v8::internal::AllocationTracker::AllocationEvent(), v8::internal::Debug::Break(), v8::internal::CheckActivation(), v8::internal::CollectActiveFunctionsFromThread(), v8::internal::Isolate::ComputeLocation(), v8::internal::Deoptimizer::DebuggerInspectableFrame(), v8::internal::DropActivationsInActiveThreadImpl(), v8::internal::Debug::FloodHandlerWithOneShot(), v8::internal::FrameInspector::GetFunction(), v8::internal::IC::GetSharedFunctionInfo(), v8::internal::Debug::IsBreakAtReturn(), v8::internal::IsSuitableForOnStackReplacement(), v8::internal::Deoptimizer::MaterializeHeapObjects(), v8::internal::AstTyper::ObserveTypesAtOsrEntry(), v8::internal::RuntimeProfiler::OptimizeNow(), v8::internal::Debug::PrepareStep(), v8::internal::Isolate::PrintCurrentStackTrace(), PrintFunctionAndOffset(), PrintTop(), v8::internal::RedirectActivationsToRecompiledCodeOnThread(), v8::internal::RUNTIME_FUNCTION(), v8::internal::Debug::SetAfterBreakTarget(), v8::internal::SetLocalVariableValue(), and v8::internal::OptimizedFrame::Summarize().
|
inlineprivate |
Definition at line 149 of file frames-arm.h.
References v8::internal::fp, v8::internal::JavaScriptFrameConstants::kFunctionOffset, and v8::internal::Memory::Object_at().
Referenced by function().
int v8::internal::JavaScriptFrame::GetArgumentsLength | ( | ) | const |
Definition at line 734 of file frames.cc.
References v8::internal::StandardFrame::caller_fp(), v8::internal::StandardFrame::GetExpression(), GetNumberOfIncomingArguments(), and has_adapted_arguments().
Referenced by v8::internal::RUNTIME_FUNCTION().
|
protectedvirtual |
Reimplemented in v8::internal::ArgumentsAdaptorFrame.
Definition at line 757 of file frames.cc.
References v8::internal::fp, and v8::internal::StandardFrameConstants::kCallerSPOffset.
|
virtual |
Reimplemented in v8::internal::OptimizedFrame.
Definition at line 762 of file frames.cc.
References v8::internal::List< T, AllocationPolicy >::Add(), and DCHECK.
Referenced by v8::internal::CollectActiveFunctionsFromThread(), v8::internal::FindFunctionInFrame(), v8::internal::GetCallerArguments(), v8::internal::FrameFunctionIterator::GetFunctions(), v8::internal::OptimizedFrame::GetFunctions(), and v8::internal::RuntimeProfiler::OptimizeNow().
|
inlinevirtual |
Reimplemented in v8::internal::OptimizedFrame.
Definition at line 599 of file frames.h.
Referenced by v8::internal::OptimizedFrame::GetInlineCount().
|
protectedvirtual |
Reimplemented in v8::internal::ArgumentsAdaptorFrame.
Definition at line 749 of file frames.cc.
References DCHECK, and v8::internal::Heap::NOT_IN_GC.
Referenced by GetArgumentsLength().
Definition at line 233 of file frames-inl.h.
References GetOperandSlot(), and v8::internal::Memory::Object_at().
Referenced by RestoreOperandStack(), and SaveOperandStack().
Definition at line 222 of file frames-inl.h.
References ComputeOperandsCount(), DCHECK, DCHECK_EQ, DCHECK_LE, DCHECK_LT, v8::internal::fp, v8::internal::IsAddressAligned(), v8::internal::JavaScriptFrameConstants::kLocal0Offset, v8::internal::kPointerSize, and type().
Referenced by GetOperand(), RestoreOperandStack(), and SaveOperandStack().
Definition at line 217 of file frames-inl.h.
References GetParameterSlot(), and v8::internal::Memory::Object_at().
Referenced by v8::internal::GetCallerArguments(), v8::internal::GetFunctionArguments(), v8::internal::FrameInspector::GetParameter(), v8::internal::AstTyper::ObserveTypesAtOsrEntry(), Print(), v8::internal::ArgumentsAdaptorFrame::Print(), PrintTop(), receiver(), v8::internal::RUNTIME_FUNCTION(), v8::internal::OptimizedFrame::Summarize(), and v8::internal::UpdateStackLocalsFromMaterializedObject().
Definition at line 209 of file frames-inl.h.
References ComputeParametersCount(), DCHECK, and v8::internal::kPointerSize.
Referenced by GetParameter(), v8::internal::RUNTIME_FUNCTION(), set_receiver(), and SetParameterValue().
|
inline |
Definition at line 260 of file frames-inl.h.
References v8::internal::StandardFrame::caller_fp(), and v8::internal::StandardFrame::IsArgumentsAdaptorFrame().
Referenced by v8::internal::FrameInspector::FrameInspector(), GetArgumentsLength(), IsConstructor(), and v8::internal::Deoptimizer::MaterializeHeapObjects().
bool v8::internal::JavaScriptFrame::IsConstructor | ( | ) | const |
Definition at line 724 of file frames.cc.
References v8::internal::Memory::Address_at(), v8::internal::StandardFrame::caller_fp(), v8::internal::fp, has_adapted_arguments(), v8::internal::StandardFrame::IsConstructFrame(), and v8::internal::StandardFrameConstants::kCallerFPOffset.
Referenced by v8::internal::FrameInspector::IsConstructor(), Print(), PrintTop(), v8::internal::RUNTIME_FUNCTION(), Summarize(), and v8::internal::OptimizedFrame::Summarize().
|
virtual |
Reimplemented in v8::internal::OptimizedFrame.
Definition at line 1368 of file frames.cc.
References v8::internal::StandardFrame::IterateExpressions().
|
protected |
|
virtual |
Reimplemented in v8::internal::ArgumentsAdaptorFrame.
Definition at line 1159 of file frames.cc.
References v8::internal::OStringStream::c_str(), v8::internal::Context::cast(), v8::internal::StandardFrame::ComputeExpressionsCount(), ComputeParametersCount(), v8::internal::StandardFrame::context(), v8::internal::ScopeInfo::ContextLocalName(), DCHECK, v8::internal::StandardFrame::GetExpression(), v8::internal::Script::GetLineNumber(), GetParameter(), v8::internal::Code::instruction_start(), IsConstructor(), v8::internal::StandardFrame::IsExpressionInsideHandler(), v8::internal::Context::IsWithContext(), v8::internal::Code::kind(), v8::internal::Context::MIN_CONTEXT_SLOTS, mode(), NULL, v8::internal::ScopeInfo::ParameterName(), v8::internal::pc, receiver(), v8::internal::Code::SourcePosition(), v8::internal::ScopeInfo::StackLocalName(), and v8::internal::SharedFunctionInfo::start_position().
|
static |
Definition at line 781 of file frames.cc.
References v8::internal::DISALLOW_NULLS, file(), function(), v8::internal::SmartPointerBase< Deallocator, T >::get(), v8::internal::Script::GetLineNumber(), v8::internal::Code::instruction_start(), v8::internal::JSFunction::IsOptimized(), v8::internal::pc, v8::internal::PrintF(), v8::internal::ROBUST_STRING_TRAVERSAL, v8::internal::Code::SourcePosition(), and v8::internal::String::ToCString().
Referenced by PrintTop(), and v8::internal::IC::TraceIC().
|
static |
Definition at line 811 of file frames.cc.
References ComputeParametersCount(), file(), function(), GetParameter(), IsConstructor(), v8::internal::PrintF(), PrintFunctionAndOffset(), receiver(), v8::internal::Object::ShortPrint(), and unchecked_code().
Referenced by v8::internal::JSObject::PrintElementsTransition(), v8::internal::Map::PrintGeneralization(), v8::internal::PrintTransition(), v8::internal::TraceTopFrame(), v8::internal::BinaryOpIC::Transition(), and v8::internal::CompareIC::UpdateCaches().
|
inline |
Definition at line 250 of file frames-inl.h.
References GetParameter().
Referenced by v8::internal::AstTyper::ObserveTypesAtOsrEntry(), Print(), v8::internal::Isolate::PrintCurrentStackTrace(), PrintTop(), v8::internal::RUNTIME_FUNCTION(), Summarize(), and v8::internal::OptimizedFrame::Summarize().
void v8::internal::JavaScriptFrame::RestoreOperandStack | ( | FixedArray * | store, |
int | stack_handler_index | ||
) |
Definition at line 875 of file frames.cc.
References ComputeOperandsCount(), DCHECK_EQ, DCHECK_LE, v8::internal::fp, v8::internal::FixedArray::get(), GetOperand(), GetOperandSlot(), v8::internal::StackHandlerConstants::kSlotCount, v8::internal::FixedArrayBase::length(), and v8::internal::Memory::Object_at().
Referenced by v8::internal::RUNTIME_FUNCTION().
void v8::internal::JavaScriptFrame::SaveOperandStack | ( | FixedArray * | store, |
int * | stack_handler_index | ||
) | const |
Definition at line 842 of file frames.cc.
References ComputeOperandsCount(), DCHECK_EQ, DCHECK_GE, DCHECK_LE, GetOperand(), GetOperandSlot(), v8::internal::StackHandlerConstants::kSlotCount, v8::internal::FixedArrayBase::length(), and v8::internal::FixedArray::set().
Referenced by v8::internal::RUNTIME_FUNCTION().
|
inline |
Definition at line 255 of file frames-inl.h.
References GetParameterSlot(), and v8::internal::Memory::Object_at().
Definition at line 719 of file frames.cc.
References GetParameterSlot(), and v8::internal::Memory::Object_at().
Referenced by v8::internal::SetLocalVariableValue(), and v8::internal::UpdateStackLocalsFromMaterializedObject().
|
virtual |
Reimplemented in v8::internal::OptimizedFrame.
Definition at line 768 of file frames.cc.
References v8::internal::List< T, AllocationPolicy >::Add(), v8::internal::HeapObject::address(), DCHECK, IsConstructor(), v8::internal::pc, and receiver().
Referenced by v8::internal::Isolate::CaptureCurrentStackTrace(), v8::internal::Isolate::CaptureSimpleStackTrace(), and v8::internal::OptimizedFrame::Summarize().
|
inlinevirtual |
Reimplemented in v8::internal::ArgumentsAdaptorFrame, and v8::internal::OptimizedFrame.
Definition at line 552 of file frames.h.
Referenced by ComputeOperandsCount(), and GetOperandSlot().
|
virtual |
Reimplemented in v8::internal::ArgumentsAdaptorFrame.
Definition at line 744 of file frames.cc.
Referenced by PrintTop().
|
friend |