v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::wasm::DebugInfoImpl Class Reference
Collaboration diagram for v8::internal::wasm::DebugInfoImpl:

Classes

struct  CachedDebuggingCode
 
struct  FrameInspectionScope
 
struct  PerIsolateDebugData
 

Public Member Functions

 DebugInfoImpl (NativeModule *native_module)
 
 DebugInfoImpl (const DebugInfoImpl &)=delete
 
DebugInfoImploperator= (const DebugInfoImpl &)=delete
 
int GetNumLocals (Address pc, Isolate *isolate)
 
WasmValue GetLocalValue (int local, Address pc, Address fp, Address debug_break_fp, Isolate *isolate)
 
int GetStackDepth (Address pc, Isolate *isolate)
 
WasmValue GetStackValue (int index, Address pc, Address fp, Address debug_break_fp, Isolate *isolate)
 
const WasmFunctionGetFunctionAtAddress (Address pc, Isolate *isolate)
 
int DeadBreakpoint (WasmFrame *frame, base::Vector< const int > breakpoints)
 
int DeadBreakpoint (int func_index, base::Vector< const int > breakpoints, Isolate *isolate)
 
WasmCodeRecompileLiftoffWithBreakpoints (int func_index, base::Vector< const int > offsets, int dead_breakpoint)
 
void SetBreakpoint (int func_index, int offset, Isolate *isolate)
 
std::vector< int > FindAllBreakpoints (int func_index)
 
void UpdateBreakpoints (int func_index, base::Vector< int > breakpoints, Isolate *isolate, StackFrameId stepping_frame, int dead_breakpoint)
 
void FloodWithBreakpoints (WasmFrame *frame, ReturnLocation return_location)
 
bool IsFrameBlackboxed (WasmFrame *frame)
 
bool PrepareStep (WasmFrame *frame)
 
void PrepareStepOutTo (WasmFrame *frame)
 
void ClearStepping (WasmFrame *frame)
 
void ClearStepping (Isolate *isolate)
 
bool IsStepping (WasmFrame *frame)
 
void RemoveBreakpoint (int func_index, int position, Isolate *isolate)
 
void RemoveDebugSideTables (base::Vector< WasmCode *const > codes)
 
DebugSideTableGetDebugSideTableIfExists (const WasmCode *code) const
 
void RemoveIsolate (Isolate *isolate)
 
size_t EstimateCurrentMemoryConsumption () const
 

Static Public Member Functions

static bool HasRemovedBreakpoints (const std::vector< int > &removed, const std::vector< int > &remaining)
 

Private Member Functions

const DebugSideTableGetDebugSideTable (WasmCode *code)
 
WasmValue GetValue (const DebugSideTable *debug_side_table, const DebugSideTable::Entry *debug_side_table_entry, int index, Address stack_frame_base, Address debug_break_fp, Isolate *isolate) const
 
void UpdateReturnAddresses (Isolate *isolate, WasmCode *new_code, StackFrameId stepping_frame)
 
void UpdateReturnAddress (WasmFrame *frame, WasmCode *new_code, ReturnLocation return_location)
 
bool IsAtReturn (WasmFrame *frame)
 

Private Attributes

NativeModule *const native_module_
 
base::Mutex debug_side_tables_mutex_
 
std::unordered_map< const WasmCode *, std::unique_ptr< DebugSideTable > > debug_side_tables_
 
base::Mutex mutex_
 
std::vector< CachedDebuggingCodecached_debugging_code_
 
std::unordered_map< Isolate *, PerIsolateDebugDataper_isolate_data_
 

Static Private Attributes

static constexpr size_t kMaxCachedDebuggingCode = 3
 

Detailed Description

Definition at line 130 of file wasm-debug.cc.

Constructor & Destructor Documentation

◆ DebugInfoImpl() [1/2]

v8::internal::wasm::DebugInfoImpl::DebugInfoImpl ( NativeModule * native_module)
inlineexplicit

Definition at line 132 of file wasm-debug.cc.

◆ DebugInfoImpl() [2/2]

v8::internal::wasm::DebugInfoImpl::DebugInfoImpl ( const DebugInfoImpl & )
delete

Member Function Documentation

◆ ClearStepping() [1/2]

void v8::internal::wasm::DebugInfoImpl::ClearStepping ( Isolate * isolate)
inline

Definition at line 441 of file wasm-debug.cc.

◆ ClearStepping() [2/2]

void v8::internal::wasm::DebugInfoImpl::ClearStepping ( WasmFrame * frame)
inline

Definition at line 425 of file wasm-debug.cc.

◆ DeadBreakpoint() [1/2]

int v8::internal::wasm::DebugInfoImpl::DeadBreakpoint ( int func_index,
base::Vector< const int > breakpoints,
Isolate * isolate )
inline

Definition at line 191 of file wasm-debug.cc.

◆ DeadBreakpoint() [2/2]

int v8::internal::wasm::DebugInfoImpl::DeadBreakpoint ( WasmFrame * frame,
base::Vector< const int > breakpoints )
inline

Definition at line 179 of file wasm-debug.cc.

Here is the call graph for this function:

◆ EstimateCurrentMemoryConsumption()

size_t v8::internal::wasm::DebugInfoImpl::EstimateCurrentMemoryConsumption ( ) const
inline

Definition at line 535 of file wasm-debug.cc.

Here is the call graph for this function:

◆ FindAllBreakpoints()

std::vector< int > v8::internal::wasm::DebugInfoImpl::FindAllBreakpoints ( int func_index)
inline

Definition at line 359 of file wasm-debug.cc.

◆ FloodWithBreakpoints()

void v8::internal::wasm::DebugInfoImpl::FloodWithBreakpoints ( WasmFrame * frame,
ReturnLocation return_location )
inline

Definition at line 382 of file wasm-debug.cc.

◆ GetDebugSideTable()

const DebugSideTable * v8::internal::wasm::DebugInfoImpl::GetDebugSideTable ( WasmCode * code)
inlineprivate

Definition at line 592 of file wasm-debug.cc.

Here is the call graph for this function:

◆ GetDebugSideTableIfExists()

DebugSideTable * v8::internal::wasm::DebugInfoImpl::GetDebugSideTableIfExists ( const WasmCode * code) const
inline

Definition at line 495 of file wasm-debug.cc.

◆ GetFunctionAtAddress()

const WasmFunction & v8::internal::wasm::DebugInfoImpl::GetFunctionAtAddress ( Address pc,
Isolate * isolate )
inline

Definition at line 169 of file wasm-debug.cc.

◆ GetLocalValue()

WasmValue v8::internal::wasm::DebugInfoImpl::GetLocalValue ( int local,
Address pc,
Address fp,
Address debug_break_fp,
Isolate * isolate )
inline

Definition at line 144 of file wasm-debug.cc.

◆ GetNumLocals()

int v8::internal::wasm::DebugInfoImpl::GetNumLocals ( Address pc,
Isolate * isolate )
inline

Definition at line 138 of file wasm-debug.cc.

Here is the call graph for this function:

◆ GetStackDepth()

int v8::internal::wasm::DebugInfoImpl::GetStackDepth ( Address pc,
Isolate * isolate )
inline

Definition at line 151 of file wasm-debug.cc.

Here is the call graph for this function:

◆ GetStackValue()

WasmValue v8::internal::wasm::DebugInfoImpl::GetStackValue ( int index,
Address pc,
Address fp,
Address debug_break_fp,
Isolate * isolate )
inline

Definition at line 159 of file wasm-debug.cc.

◆ GetValue()

WasmValue v8::internal::wasm::DebugInfoImpl::GetValue ( const DebugSideTable * debug_side_table,
const DebugSideTable::Entry * debug_side_table_entry,
int index,
Address stack_frame_base,
Address debug_break_fp,
Isolate * isolate ) const
inlineprivate

Definition at line 623 of file wasm-debug.cc.

Here is the call graph for this function:

◆ HasRemovedBreakpoints()

static bool v8::internal::wasm::DebugInfoImpl::HasRemovedBreakpoints ( const std::vector< int > & removed,
const std::vector< int > & remaining )
inlinestatic

Definition at line 501 of file wasm-debug.cc.

◆ IsAtReturn()

bool v8::internal::wasm::DebugInfoImpl::IsAtReturn ( WasmFrame * frame)
inlineprivate

Definition at line 766 of file wasm-debug.cc.

Here is the call graph for this function:

◆ IsFrameBlackboxed()

bool v8::internal::wasm::DebugInfoImpl::IsFrameBlackboxed ( WasmFrame * frame)
inline

Definition at line 398 of file wasm-debug.cc.

Here is the call graph for this function:

◆ IsStepping()

bool v8::internal::wasm::DebugInfoImpl::IsStepping ( WasmFrame * frame)
inline

Definition at line 447 of file wasm-debug.cc.

Here is the call graph for this function:

◆ operator=()

DebugInfoImpl & v8::internal::wasm::DebugInfoImpl::operator= ( const DebugInfoImpl & )
delete

◆ PrepareStep()

bool v8::internal::wasm::DebugInfoImpl::PrepareStep ( WasmFrame * frame)
inline

Definition at line 409 of file wasm-debug.cc.

◆ PrepareStepOutTo()

void v8::internal::wasm::DebugInfoImpl::PrepareStepOutTo ( WasmFrame * frame)
inline

Definition at line 418 of file wasm-debug.cc.

◆ RecompileLiftoffWithBreakpoints()

WasmCode * v8::internal::wasm::DebugInfoImpl::RecompileLiftoffWithBreakpoints ( int func_index,
base::Vector< const int > offsets,
int dead_breakpoint )
inline

Definition at line 207 of file wasm-debug.cc.

Here is the call graph for this function:

◆ RemoveBreakpoint()

void v8::internal::wasm::DebugInfoImpl::RemoveBreakpoint ( int func_index,
int position,
Isolate * isolate )
inline

Definition at line 456 of file wasm-debug.cc.

◆ RemoveDebugSideTables()

void v8::internal::wasm::DebugInfoImpl::RemoveDebugSideTables ( base::Vector< WasmCode *const > codes)
inline

Definition at line 488 of file wasm-debug.cc.

◆ RemoveIsolate()

void v8::internal::wasm::DebugInfoImpl::RemoveIsolate ( Isolate * isolate)
inline

Definition at line 513 of file wasm-debug.cc.

◆ SetBreakpoint()

void v8::internal::wasm::DebugInfoImpl::SetBreakpoint ( int func_index,
int offset,
Isolate * isolate )
inline

Definition at line 306 of file wasm-debug.cc.

◆ UpdateBreakpoints()

void v8::internal::wasm::DebugInfoImpl::UpdateBreakpoints ( int func_index,
base::Vector< int > breakpoints,
Isolate * isolate,
StackFrameId stepping_frame,
int dead_breakpoint )
inline

Definition at line 370 of file wasm-debug.cc.

◆ UpdateReturnAddress()

void v8::internal::wasm::DebugInfoImpl::UpdateReturnAddress ( WasmFrame * frame,
WasmCode * new_code,
ReturnLocation return_location )
inlineprivate

Definition at line 743 of file wasm-debug.cc.

Here is the call graph for this function:

◆ UpdateReturnAddresses()

void v8::internal::wasm::DebugInfoImpl::UpdateReturnAddresses ( Isolate * isolate,
WasmCode * new_code,
StackFrameId stepping_frame )
inlineprivate

Definition at line 720 of file wasm-debug.cc.

Here is the call graph for this function:

Member Data Documentation

◆ cached_debugging_code_

std::vector<CachedDebuggingCode> v8::internal::wasm::DebugInfoImpl::cached_debugging_code_
private

Definition at line 812 of file wasm-debug.cc.

◆ debug_side_tables_

std::unordered_map<const WasmCode*, std::unique_ptr<DebugSideTable> > v8::internal::wasm::DebugInfoImpl::debug_side_tables_
private

Definition at line 796 of file wasm-debug.cc.

◆ debug_side_tables_mutex_

base::Mutex v8::internal::wasm::DebugInfoImpl::debug_side_tables_mutex_
mutableprivate

Definition at line 792 of file wasm-debug.cc.

◆ kMaxCachedDebuggingCode

size_t v8::internal::wasm::DebugInfoImpl::kMaxCachedDebuggingCode = 3
staticconstexprprivate

Definition at line 805 of file wasm-debug.cc.

◆ mutex_

base::Mutex v8::internal::wasm::DebugInfoImpl::mutex_
mutableprivate

Definition at line 799 of file wasm-debug.cc.

◆ native_module_

NativeModule* const v8::internal::wasm::DebugInfoImpl::native_module_
private

Definition at line 790 of file wasm-debug.cc.

◆ per_isolate_data_

std::unordered_map<Isolate*, PerIsolateDebugData> v8::internal::wasm::DebugInfoImpl::per_isolate_data_
private

Definition at line 815 of file wasm-debug.cc.


The documentation for this class was generated from the following file: