Loading...
Searching...
No Matches
v8-debug.h
Go to the documentation of this file.
1// Copyright 2021 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 INCLUDE_V8_DEBUG_H_
6#define INCLUDE_V8_DEBUG_H_
7
8#include <stdint.h>
9
10#include <span>
11
12#include "v8-script.h" // NOLINT(build/include_directory)
13#include "v8config.h" // NOLINT(build/include_directory)
14
15namespace v8 {
16
17class Isolate;
18class String;
19
24 public:
29
36 int GetLineNumber() const { return GetLocation().GetLineNumber() + 1; }
37
45 int GetColumn() const { return GetLocation().GetColumnNumber() + 1; }
46
51 int GetSourcePosition() const;
52
59 int GetScriptId() const;
60
66
74
79
85
90
95 bool IsEval() const;
96
101 bool IsConstructor() const;
102
106 bool IsWasm() const;
107
111 bool IsUserJavaScript() const;
112};
113
120 public:
128 kLineNumber = 1,
129 kColumnOffset = 1 << 1 | kLineNumber,
130 kScriptName = 1 << 2,
131 kFunctionName = 1 << 3,
132 kIsEval = 1 << 4,
133 kIsConstructor = 1 << 5,
134 kScriptNameOrSourceURL = 1 << 6,
135 kScriptId = 1 << 7,
136 kExposeFramesAcrossSecurityOrigins = 1 << 8,
137 kOverview = kLineNumber | kColumnOffset | kScriptName | kFunctionName,
138 kDetailed = kOverview | kIsEval | kIsConstructor | kScriptNameOrSourceURL
139 };
140
142 int id;
144 };
145
146 struct ScriptData {
147 int id;
150 };
151
155 int GetID() const;
156
160 Local<StackFrame> GetFrame(Isolate* isolate, uint32_t index) const;
161
165 int GetFrameCount() const;
166
175 Isolate* isolate, int frame_limit, StackTraceOptions options = kDetailed);
176
188
197 static int CurrentScriptId(Isolate* isolate);
198
209 V8_DEPRECATE_SOON("Use CurrentScriptData instead")
210 static std::span<v8::StackTrace::ScriptIdAndContext>
211 CurrentScriptIdsAndContexts(Isolate* isolate,
212 std::span<ScriptIdAndContext> frame_data);
213
227 static std::span<v8::StackTrace::ScriptData> CurrentScriptData(
228 Isolate* isolate, std::span<ScriptData> frame_data);
229};
230
231} // namespace v8
232
233#endif // INCLUDE_V8_DEBUG_H_
Definition: v8-isolate.h:292
Definition: v8-local-handle.h:366
Definition: v8-script.h:127
Definition: v8-debug.h:23
int GetSourcePosition() const
int GetLineNumber() const
Definition: v8-debug.h:36
int GetColumn() const
Definition: v8-debug.h:45
bool IsUserJavaScript() const
Local< String > GetScriptName() const
Local< String > GetScriptNameOrSourceURL() const
Location GetLocation() const
Local< String > GetScriptSourceMappingURL() const
bool IsConstructor() const
bool IsEval() const
Local< String > GetFunctionName() const
int GetScriptId() const
Local< String > GetScriptSource() const
bool IsWasm() const
Definition: v8-debug.h:119
Local< StackFrame > GetFrame(Isolate *isolate, uint32_t index) const
static Local< StackTrace > CurrentStackTrace(Isolate *isolate, int frame_limit, StackTraceOptions options=kDetailed)
static Local< String > CurrentScriptNameOrSourceURL(Isolate *isolate)
static int CurrentScriptId(Isolate *isolate)
StackTraceOptions
Definition: v8-debug.h:127
int GetFrameCount() const
int GetID() const
Definition: libplatform.h:15
Definition: v8-debug.h:146
v8::Local< v8::Context > context
Definition: v8-debug.h:149
v8::Local< v8::Function > function
Definition: v8-debug.h:148
int id
Definition: v8-debug.h:147
Definition: v8-debug.h:141
int id
Definition: v8-debug.h:142
v8::Local< v8::Context > context
Definition: v8-debug.h:143
#define V8_EXPORT
Definition: v8config.h:867
#define V8_DEPRECATE_SOON(message)
Definition: v8config.h:624