v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8-debugger-script.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2008 Apple Inc. All rights reserved.
3 * Copyright (C) 2010 Google Inc. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
15 * its contributors may be used to endorse or promote products derived
16 * from this software without specific prior written permission.
17 *
18 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
19 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
22 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
25 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 */
29
30#ifndef V8_INSPECTOR_V8_DEBUGGER_SCRIPT_H_
31#define V8_INSPECTOR_V8_DEBUGGER_SCRIPT_H_
32
33#include <memory>
34
36#include "include/v8-maybe.h"
37#include "src/base/macros.h"
41
42namespace v8 {
43class Isolate;
44}
45
46namespace v8_inspector {
47
48class V8DebuggerAgentImpl;
49class V8InspectorClient;
50
52 public:
54 static std::unique_ptr<V8DebuggerScript> Create(
57
61
63 const String16& scriptId() const { return m_id; }
65 const String16& sourceURL() const { return m_url; }
66 const String16& embedderName() const { return m_embedderName; }
67
68 virtual const String16& sourceMappingURL() const = 0;
69 virtual String16 source(size_t pos, size_t len = UINT_MAX) const = 0;
70 virtual Language getLanguage() const = 0;
71 virtual const String16& hash() const = 0;
72 virtual String16 buildId() const = 0;
73 virtual int startLine() const = 0;
74 virtual int startColumn() const = 0;
75 virtual int endLine() const = 0;
76 virtual int endColumn() const = 0;
77 virtual int codeOffset() const = 0;
79 virtual bool isLiveEdit() const = 0;
80 virtual bool isModule() const = 0;
81 virtual int length() const = 0;
82
83 void setSourceURL(const String16&);
84 virtual void setSourceMappingURL(const String16&) = 0;
85 virtual void setSource(const String16& source, bool preview,
86 bool allowTopFrameLiveEditing,
88
91 bool ignoreNestedFunctions,
92 std::vector<v8::debug::BreakLocation>* locations) = 0;
93 virtual void resetBlackboxedStateCache() = 0;
94
95 virtual v8::Maybe<int> offset(int lineNumber, int columnNumber) const = 0;
96 virtual v8::debug::Location location(int offset) const = 0;
97
98 virtual bool setBreakpoint(const String16& condition,
99 v8::debug::Location* location, int* id) const = 0;
100 virtual void MakeWeak() = 0;
101 virtual bool setInstrumentationBreakpoint(int* id) const = 0;
102
103#if V8_ENABLE_WEBASSEMBLY
104 virtual v8::Maybe<v8::MemorySpan<const uint8_t>> wasmBytecode() const = 0;
105 virtual std::vector<v8::debug::WasmScript::DebugSymbols> getDebugSymbols()
106 const = 0;
107 void removeWasmBreakpoint(int id);
108 virtual void Disassemble(v8::debug::DisassemblyCollector* collector,
109 std::vector<int>* function_body_offsets) const = 0;
110#endif // V8_ENABLE_WEBASSEMBLY
111
112 protected:
115
117
122
125};
126
127} // namespace v8_inspector
128
129#endif // V8_INSPECTOR_V8_DEBUGGER_SCRIPT_H_
SourcePosition pos
virtual v8::Local< v8::debug::Script > script() const =0
const String16 & embedderName() const
virtual int codeOffset() const =0
virtual v8::Maybe< int > offset(int lineNumber, int columnNumber) const =0
virtual String16 source(size_t pos, size_t len=UINT_MAX) const =0
virtual const String16 & hash() const =0
static std::unique_ptr< V8DebuggerScript > Create(v8::Isolate *isolate, v8::Local< v8::debug::Script > script, bool isLiveEdit, V8DebuggerAgentImpl *agent, V8InspectorClient *client)
virtual const String16 & sourceMappingURL() const =0
virtual bool isLiveEdit() const =0
const String16 & scriptId() const
V8DebuggerScript & operator=(const V8DebuggerScript &)=delete
V8DebuggerScript(const V8DebuggerScript &)=delete
virtual bool setBreakpoint(const String16 &condition, v8::debug::Location *location, int *id) const =0
virtual Language getLanguage() const =0
virtual int startColumn() const =0
virtual int endColumn() const =0
virtual int length() const =0
virtual int startLine() const =0
virtual bool isModule() const =0
virtual bool getPossibleBreakpoints(const v8::debug::Location &start, const v8::debug::Location &end, bool ignoreNestedFunctions, std::vector< v8::debug::BreakLocation > *locations)=0
virtual String16 buildId() const =0
virtual int endLine() const =0
virtual bool setInstrumentationBreakpoint(int *id) const =0
virtual void setSource(const String16 &source, bool preview, bool allowTopFrameLiveEditing, v8::debug::LiveEditResult *result)=0
const String16 & sourceURL() const
void setSourceURL(const String16 &)
v8::Local< v8::debug::ScriptSource > scriptSource()
virtual v8::debug::Location location(int offset) const =0
virtual void resetBlackboxedStateCache()=0
virtual void setSourceMappingURL(const String16 &)=0
int start
int end
int32_t offset
ZoneVector< RpoNumber > & result