1 // Copyright 2016 the V8 project authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef V8_WASM_DEBUG_H_ 6 #define V8_WASM_DEBUG_H_ 7 8 #include "src/handles.h" 9 #include "src/objects.h" 10 11 namespace v8 { 12 namespace internal { 13 namespace wasm { 14 15 class WasmDebugInfo : public FixedArray { 16 public: 17 static Handle<WasmDebugInfo> New(Handle<JSObject> wasm); 18 19 static bool IsDebugInfo(Object* object); 20 static WasmDebugInfo* cast(Object* object); 21 22 JSObject* wasm_object(); 23 24 bool SetBreakPoint(int byte_offset); 25 26 // Disassemble the specified function from this module. 27 static Handle<String> DisassembleFunction(Handle<WasmDebugInfo> debug_info, 28 int func_index); 29 30 // Get the offset table for the specified function. 31 // Returns an array with three entries per instruction: byte offset, line and 32 // column. 33 static Handle<FixedArray> GetFunctionOffsetTable( 34 Handle<WasmDebugInfo> debug_info, int func_index); 35 }; 36 37 } // namespace wasm 38 } // namespace internal 39 } // namespace v8 40 41 #endif // V8_WASM_DEBUG_H_ 42