Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(327)

Unified Diff: src/inspector/v8-debugger-agent-impl.cc

Issue 2493773003: [inspector] Introduce translation of wasm frames (Closed)
Patch Set: More signed/unsigned Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/inspector/v8-debugger-agent-impl.cc
diff --git a/src/inspector/v8-debugger-agent-impl.cc b/src/inspector/v8-debugger-agent-impl.cc
index 60d58390e3fa1aa9d2d9f05e03aefc383dcb7a7e..55e59e282f5a04314ae557233d749b905a817a36 100644
--- a/src/inspector/v8-debugger-agent-impl.cc
+++ b/src/inspector/v8-debugger-agent-impl.cc
@@ -115,7 +115,8 @@ V8DebuggerAgentImpl::V8DebuggerAgentImpl(
m_skippedStepFrameCount(0),
m_recursionLevelForStepOut(0),
m_recursionLevelForStepFrame(0),
- m_skipAllPauses(false) {
+ m_skipAllPauses(false),
+ m_wasmTranslation(m_isolate, this) {
clearBreakDetails();
}
@@ -182,6 +183,7 @@ Response V8DebuggerAgentImpl::disable() {
m_state->remove(DebuggerAgentState::blackboxPattern);
m_enabled = false;
m_state->setBoolean(DebuggerAgentState::debuggerEnabled, false);
+ m_wasmTranslation.Clear();
return Response::OK();
}
@@ -497,10 +499,13 @@ V8DebuggerAgentImpl::resolveBreakpoint(const String16& breakpointId,
scriptIterator->second->endLine() < breakpoint.line_number)
return nullptr;
+ ScriptBreakpoint translatedBreakpoint(breakpoint);
+ m_wasmTranslation.TranslateBack(&translatedBreakpoint);
+
int actualLineNumber;
int actualColumnNumber;
String16 debuggerBreakpointId = m_debugger->setBreakpoint(
- breakpoint, &actualLineNumber, &actualColumnNumber);
+ translatedBreakpoint, &actualLineNumber, &actualColumnNumber);
if (debuggerBreakpointId.isEmpty()) return nullptr;
m_serverBreakpoints[debuggerBreakpointId] =
@@ -509,7 +514,7 @@ V8DebuggerAgentImpl::resolveBreakpoint(const String16& breakpointId,
m_breakpointIdToDebuggerBreakpointIds[breakpointId].push_back(
debuggerBreakpointId);
- return buildProtocolLocation(breakpoint.script_id, actualLineNumber,
+ return buildProtocolLocation(translatedBreakpoint.script_id, actualLineNumber,
actualColumnNumber);
}
@@ -523,9 +528,8 @@ Response V8DebuggerAgentImpl::searchInContent(
return Response::Error("No script for id: " + scriptId);
std::vector<std::unique_ptr<protocol::Debugger::SearchMatch>> matches =
- searchInTextByLinesImpl(m_session,
- toProtocolString(it->second->source(m_isolate)),
- query, optionalCaseSensitive.fromMaybe(false),
+ searchInTextByLinesImpl(m_session, it->second->source(m_isolate), query,
+ optionalCaseSensitive.fromMaybe(false),
optionalIsRegex.fromMaybe(false));
*results = protocol::Array<protocol::Debugger::SearchMatch>::create();
for (size_t i = 0; i < matches.size(); ++i)
@@ -596,7 +600,7 @@ Response V8DebuggerAgentImpl::getScriptSource(const String16& scriptId,
if (it == m_scripts.end())
return Response::Error("No script for id: " + scriptId);
v8::HandleScope handles(m_isolate);
- *scriptSource = toProtocolString(it->second->source(m_isolate));
+ *scriptSource = it->second->source(m_isolate);
return Response::OK();
}
@@ -855,6 +859,10 @@ void V8DebuggerAgentImpl::didExecuteScript() {
changeJavaScriptRecursionLevel(-1);
}
+void V8DebuggerAgentImpl::newWasmScript(v8::Local<v8::Object> scriptWrapper) {
+ m_wasmTranslation.AddScript(scriptWrapper);
+}
+
void V8DebuggerAgentImpl::changeJavaScriptRecursionLevel(int step) {
if (m_javaScriptPauseScheduled && !m_skipAllPauses &&
!m_debugger->isPaused()) {
@@ -998,6 +1006,8 @@ Response V8DebuggerAgentImpl::currentCallFrames(
protocol::ErrorSupport errorSupport;
*result = Array<CallFrame>::parse(protocolValue.get(), &errorSupport);
if (!*result) return Response::Error(errorSupport.errors());
+ for (size_t i = 0, e = (*result)->length(); i != e; ++i)
+ m_wasmTranslation.Translate((*result)->get(i)->getLocation());
return Response::OK();
}
@@ -1011,7 +1021,7 @@ std::unique_ptr<StackTrace> V8DebuggerAgentImpl::currentAsyncStackTrace() {
void V8DebuggerAgentImpl::didParseSource(
std::unique_ptr<V8DebuggerScript> script, bool success) {
v8::HandleScope handles(m_isolate);
- String16 scriptSource = toProtocolString(script->source(m_isolate));
+ String16 scriptSource = script->source(m_isolate);
if (!success) script->setSourceURL(findSourceURL(scriptSource, false));
if (!success)
script->setSourceMappingURL(findSourceMapURL(scriptSource, false));
@@ -1034,13 +1044,13 @@ void V8DebuggerAgentImpl::didParseSource(
m_frontend.scriptParsed(
scriptId, scriptURL, script->startLine(), script->startColumn(),
script->endLine(), script->endColumn(), script->executionContextId(),
- script->hash(), std::move(executionContextAuxDataParam),
+ script->hash(m_isolate), std::move(executionContextAuxDataParam),
isLiveEditParam, std::move(sourceMapURLParam), hasSourceURLParam);
else
m_frontend.scriptFailedToParse(
scriptId, scriptURL, script->startLine(), script->startColumn(),
script->endLine(), script->endColumn(), script->executionContextId(),
- script->hash(), std::move(executionContextAuxDataParam),
+ script->hash(m_isolate), std::move(executionContextAuxDataParam),
std::move(sourceMapURLParam), hasSourceURLParam);
m_scripts[scriptId] = std::move(script);
@@ -1229,4 +1239,9 @@ void V8DebuggerAgentImpl::reset() {
m_breakpointIdToDebuggerBreakpointIds.clear();
}
+void V8DebuggerAgentImpl::translateLocation(String16* scriptId, int* lineNumber,
+ int* columnNumber) {
+ m_wasmTranslation.Translate(scriptId, lineNumber, columnNumber);
+}
+
} // namespace v8_inspector

Powered by Google App Engine
This is Rietveld 408576698