Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "src/inspector/v8-debugger-agent-impl.h" | 5 #include "src/inspector/v8-debugger-agent-impl.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "src/debug/debug-interface.h" | 9 #include "src/debug/debug-interface.h" |
| 10 #include "src/inspector/injected-script.h" | 10 #include "src/inspector/injected-script.h" |
| (...skipping 455 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 466 DCHECK(enabled()); | 466 DCHECK(enabled()); |
| 467 // FIXME: remove these checks once crbug.com/520702 is resolved. | 467 // FIXME: remove these checks once crbug.com/520702 is resolved. |
| 468 CHECK(!breakpointId.isEmpty()); | 468 CHECK(!breakpointId.isEmpty()); |
| 469 CHECK(!breakpoint.script_id.isEmpty()); | 469 CHECK(!breakpoint.script_id.isEmpty()); |
| 470 ScriptsMap::iterator scriptIterator = m_scripts.find(breakpoint.script_id); | 470 ScriptsMap::iterator scriptIterator = m_scripts.find(breakpoint.script_id); |
| 471 if (scriptIterator == m_scripts.end()) return nullptr; | 471 if (scriptIterator == m_scripts.end()) return nullptr; |
| 472 if (breakpoint.line_number < scriptIterator->second->startLine() || | 472 if (breakpoint.line_number < scriptIterator->second->startLine() || |
| 473 scriptIterator->second->endLine() < breakpoint.line_number) | 473 scriptIterator->second->endLine() < breakpoint.line_number) |
| 474 return nullptr; | 474 return nullptr; |
| 475 | 475 |
| 476 // Translate from protocol location to v8 location for the debugger. | |
| 476 ScriptBreakpoint translatedBreakpoint = breakpoint; | 477 ScriptBreakpoint translatedBreakpoint = breakpoint; |
| 477 m_debugger->wasmTranslation()->TranslateProtocolLocationToWasmScriptLocation( | 478 m_debugger->wasmTranslation()->TranslateProtocolLocationToWasmScriptLocation( |
| 478 &translatedBreakpoint.script_id, &translatedBreakpoint.line_number, | 479 &translatedBreakpoint.script_id, &translatedBreakpoint.line_number, |
| 479 &translatedBreakpoint.column_number); | 480 &translatedBreakpoint.column_number); |
| 480 | 481 |
| 481 int actualLineNumber; | |
| 482 int actualColumnNumber; | |
| 483 String16 debuggerBreakpointId = m_debugger->setBreakpoint( | 482 String16 debuggerBreakpointId = m_debugger->setBreakpoint( |
| 484 translatedBreakpoint, &actualLineNumber, &actualColumnNumber); | 483 translatedBreakpoint, &translatedBreakpoint.line_number, |
|
dgozman
2017/01/26 06:24:34
drive-by: it doesn't look safe to pass a part of i
Clemens Hammacher
2017/01/26 09:57:47
Yes, it looks weird. I checked that it works, but
| |
| 484 &translatedBreakpoint.column_number); | |
| 485 if (debuggerBreakpointId.isEmpty()) return nullptr; | 485 if (debuggerBreakpointId.isEmpty()) return nullptr; |
| 486 | 486 |
| 487 // Translate back from v8 location to protocol location for the return value. | |
| 488 m_debugger->wasmTranslation()->TranslateWasmScriptLocationToProtocolLocation( | |
|
dgozman
2017/01/26 06:24:34
drive-by: why don't we pass ScriptBreakpoint* arou
Clemens Hammacher
2017/01/26 09:57:48
It's not only ScriptBreakpoint object which need t
| |
| 489 &translatedBreakpoint.script_id, &translatedBreakpoint.line_number, | |
| 490 &translatedBreakpoint.column_number); | |
| 491 | |
| 487 m_serverBreakpoints[debuggerBreakpointId] = | 492 m_serverBreakpoints[debuggerBreakpointId] = |
| 488 std::make_pair(breakpointId, source); | 493 std::make_pair(breakpointId, source); |
| 489 CHECK(!breakpointId.isEmpty()); | 494 CHECK(!breakpointId.isEmpty()); |
| 490 | 495 |
| 491 m_breakpointIdToDebuggerBreakpointIds[breakpointId].push_back( | 496 m_breakpointIdToDebuggerBreakpointIds[breakpointId].push_back( |
| 492 debuggerBreakpointId); | 497 debuggerBreakpointId); |
| 493 return buildProtocolLocation(translatedBreakpoint.script_id, actualLineNumber, | 498 return buildProtocolLocation(translatedBreakpoint.script_id, |
| 494 actualColumnNumber); | 499 translatedBreakpoint.line_number, |
| 500 translatedBreakpoint.column_number); | |
| 495 } | 501 } |
| 496 | 502 |
| 497 Response V8DebuggerAgentImpl::searchInContent( | 503 Response V8DebuggerAgentImpl::searchInContent( |
| 498 const String16& scriptId, const String16& query, | 504 const String16& scriptId, const String16& query, |
| 499 Maybe<bool> optionalCaseSensitive, Maybe<bool> optionalIsRegex, | 505 Maybe<bool> optionalCaseSensitive, Maybe<bool> optionalIsRegex, |
| 500 std::unique_ptr<Array<protocol::Debugger::SearchMatch>>* results) { | 506 std::unique_ptr<Array<protocol::Debugger::SearchMatch>>* results) { |
| 501 v8::HandleScope handles(m_isolate); | 507 v8::HandleScope handles(m_isolate); |
| 502 ScriptsMap::iterator it = m_scripts.find(scriptId); | 508 ScriptsMap::iterator it = m_scripts.find(scriptId); |
| 503 if (it == m_scripts.end()) | 509 if (it == m_scripts.end()) |
| 504 return Response::Error("No script for id: " + scriptId); | 510 return Response::Error("No script for id: " + scriptId); |
| (...skipping 676 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1181 void V8DebuggerAgentImpl::reset() { | 1187 void V8DebuggerAgentImpl::reset() { |
| 1182 if (!enabled()) return; | 1188 if (!enabled()) return; |
| 1183 m_scheduledDebuggerStep = NoStep; | 1189 m_scheduledDebuggerStep = NoStep; |
| 1184 m_blackboxedPositions.clear(); | 1190 m_blackboxedPositions.clear(); |
| 1185 resetBlackboxedStateCache(); | 1191 resetBlackboxedStateCache(); |
| 1186 m_scripts.clear(); | 1192 m_scripts.clear(); |
| 1187 m_breakpointIdToDebuggerBreakpointIds.clear(); | 1193 m_breakpointIdToDebuggerBreakpointIds.clear(); |
| 1188 } | 1194 } |
| 1189 | 1195 |
| 1190 } // namespace v8_inspector | 1196 } // namespace v8_inspector |
| OLD | NEW |