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

Side by Side Diff: src/api.cc

Issue 2529383002: [inspector] Split off interface-types.h (Closed)
Patch Set: Rebase Created 4 years 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 unified diff | Download patch
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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/api.h" 5 #include "src/api.h"
6 6
7 #include <string.h> // For memcpy, strlen. 7 #include <string.h> // For memcpy, strlen.
8 #ifdef V8_USE_ADDRESS_SANITIZER 8 #ifdef V8_USE_ADDRESS_SANITIZER
9 #include <sanitizer/asan_interface.h> 9 #include <sanitizer/asan_interface.h>
10 #endif // V8_USE_ADDRESS_SANITIZER 10 #endif // V8_USE_ADDRESS_SANITIZER
(...skipping 8960 matching lines...) Expand 10 before | Expand all | Expand 10 after
8971 return Utils::OpenHandle(this)->type() == i::Script::TYPE_WASM; 8971 return Utils::OpenHandle(this)->type() == i::Script::TYPE_WASM;
8972 } 8972 }
8973 8973
8974 namespace { 8974 namespace {
8975 int GetSmiValue(i::Handle<i::FixedArray> array, int index) { 8975 int GetSmiValue(i::Handle<i::FixedArray> array, int index) {
8976 return i::Smi::cast(array->get(index))->value(); 8976 return i::Smi::cast(array->get(index))->value();
8977 } 8977 }
8978 } // namespace 8978 } // namespace
8979 8979
8980 bool DebugInterface::Script::GetPossibleBreakpoints( 8980 bool DebugInterface::Script::GetPossibleBreakpoints(
8981 const Location& start, const Location& end, 8981 const debug::Location& start, const debug::Location& end,
8982 std::vector<Location>* locations) const { 8982 std::vector<debug::Location>* locations) const {
8983 CHECK(!start.IsEmpty()); 8983 CHECK(!start.IsEmpty());
8984 i::Handle<i::Script> script = Utils::OpenHandle(this); 8984 i::Handle<i::Script> script = Utils::OpenHandle(this);
8985 if (script->type() == i::Script::TYPE_WASM) { 8985 if (script->type() == i::Script::TYPE_WASM) {
8986 // TODO(clemensh): Return the proper thing once we support wasm breakpoints. 8986 // TODO(clemensh): Return the proper thing once we support wasm breakpoints.
8987 return false; 8987 return false;
8988 } 8988 }
8989 8989
8990 i::Script::InitLineEnds(script); 8990 i::Script::InitLineEnds(script);
8991 CHECK(script->line_ends()->IsFixedArray()); 8991 CHECK(script->line_ends()->IsFixedArray());
8992 i::Isolate* isolate = script->GetIsolate(); 8992 i::Isolate* isolate = script->GetIsolate();
(...skipping 21 matching lines...) Expand all
9014 int offset = it; 9014 int offset = it;
9015 while (offset > GetSmiValue(line_ends, current_line_end_index)) { 9015 while (offset > GetSmiValue(line_ends, current_line_end_index)) {
9016 ++current_line_end_index; 9016 ++current_line_end_index;
9017 CHECK(current_line_end_index < line_ends->length()); 9017 CHECK(current_line_end_index < line_ends->length());
9018 } 9018 }
9019 int line_offset = 0; 9019 int line_offset = 0;
9020 9020
9021 if (current_line_end_index > 0) { 9021 if (current_line_end_index > 0) {
9022 line_offset = GetSmiValue(line_ends, current_line_end_index - 1) + 1; 9022 line_offset = GetSmiValue(line_ends, current_line_end_index - 1) + 1;
9023 } 9023 }
9024 locations->push_back(Location( 9024 locations->push_back(debug::Location(
9025 current_line_end_index + script->line_offset(), 9025 current_line_end_index + script->line_offset(),
9026 offset - line_offset + 9026 offset - line_offset +
9027 (current_line_end_index == 0 ? script->column_offset() : 0))); 9027 (current_line_end_index == 0 ? script->column_offset() : 0)));
9028 } 9028 }
9029 return true; 9029 return true;
9030 } 9030 }
9031 9031
9032 int DebugInterface::Script::GetSourcePosition(const Location& location) const { 9032 int DebugInterface::Script::GetSourcePosition(
9033 const debug::Location& location) const {
9033 i::Handle<i::Script> script = Utils::OpenHandle(this); 9034 i::Handle<i::Script> script = Utils::OpenHandle(this);
9034 if (script->type() == i::Script::TYPE_WASM) { 9035 if (script->type() == i::Script::TYPE_WASM) {
9035 // TODO(clemensh): Return the proper thing for wasm. 9036 // TODO(clemensh): Return the proper thing for wasm.
9036 return 0; 9037 return 0;
9037 } 9038 }
9038 9039
9039 int line = std::max(location.GetLineNumber() - script->line_offset(), 0); 9040 int line = std::max(location.GetLineNumber() - script->line_offset(), 0);
9040 int column = location.GetColumnNumber(); 9041 int column = location.GetColumnNumber();
9041 if (line == 0) { 9042 if (line == 0) {
9042 column = std::max(0, column - script->column_offset()); 9043 column = std::max(0, column - script->column_offset());
(...skipping 26 matching lines...) Expand all
9069 } 9070 }
9070 i::Handle<i::Script> script_obj = i::Handle<i::Script>::cast(script_value); 9071 i::Handle<i::Script> script_obj = i::Handle<i::Script>::cast(script_value);
9071 if (script_obj->type() != i::Script::TYPE_NORMAL && 9072 if (script_obj->type() != i::Script::TYPE_NORMAL &&
9072 script_obj->type() != i::Script::TYPE_WASM) { 9073 script_obj->type() != i::Script::TYPE_WASM) {
9073 return MaybeLocal<Script>(); 9074 return MaybeLocal<Script>();
9074 } 9075 }
9075 return ToApiHandle<DebugInterface::Script>( 9076 return ToApiHandle<DebugInterface::Script>(
9076 handle_scope.CloseAndEscape(script_obj)); 9077 handle_scope.CloseAndEscape(script_obj));
9077 } 9078 }
9078 9079
9079 DebugInterface::Location::Location(int lineNumber, int columnNumber) 9080 debug::Location::Location(int line_number, int column_number)
9080 : lineNumber_(lineNumber), columnNumber_(columnNumber) { 9081 : line_number_(line_number), column_number_(column_number) {
9081 CHECK(lineNumber >= 0); 9082 CHECK(line_number >= 0);
9082 CHECK(columnNumber >= 0); 9083 CHECK(column_number >= 0);
9083 } 9084 }
9084 9085
9085 DebugInterface::Location::Location() : lineNumber_(-1), columnNumber_(-1) {} 9086 debug::Location::Location() : line_number_(-1), column_number_(-1) {}
9086 9087
9087 int DebugInterface::Location::GetLineNumber() const { 9088 int debug::Location::GetLineNumber() const {
9088 CHECK(lineNumber_ >= 0); 9089 CHECK(line_number_ >= 0);
9089 return lineNumber_; 9090 return line_number_;
9090 } 9091 }
9091 9092
9092 int DebugInterface::Location::GetColumnNumber() const { 9093 int debug::Location::GetColumnNumber() const {
9093 CHECK(columnNumber_ >= 0); 9094 CHECK(column_number_ >= 0);
9094 return columnNumber_; 9095 return column_number_;
9095 } 9096 }
9096 9097
9097 bool DebugInterface::Location::IsEmpty() const { 9098 bool debug::Location::IsEmpty() const {
9098 return lineNumber_ == -1 && columnNumber_ == -1; 9099 return line_number_ == -1 && column_number_ == -1;
9099 } 9100 }
9100 9101
9101 void DebugInterface::GetLoadedScripts( 9102 void DebugInterface::GetLoadedScripts(
9102 v8::Isolate* v8_isolate, 9103 v8::Isolate* v8_isolate,
9103 PersistentValueVector<DebugInterface::Script>& scripts) { 9104 PersistentValueVector<DebugInterface::Script>& scripts) {
9104 i::Isolate* isolate = reinterpret_cast<i::Isolate*>(v8_isolate); 9105 i::Isolate* isolate = reinterpret_cast<i::Isolate*>(v8_isolate);
9105 ENTER_V8(isolate); 9106 ENTER_V8(isolate);
9106 // TODO(kozyatinskiy): remove this GC once tests are dealt with. 9107 // TODO(kozyatinskiy): remove this GC once tests are dealt with.
9107 isolate->heap()->CollectAllGarbage(i::Heap::kFinalizeIncrementalMarkingMask, 9108 isolate->heap()->CollectAllGarbage(i::Heap::kFinalizeIncrementalMarkingMask,
9108 i::GarbageCollectionReason::kDebugger); 9109 i::GarbageCollectionReason::kDebugger);
9109 { 9110 {
9110 i::DisallowHeapAllocation no_gc; 9111 i::DisallowHeapAllocation no_gc;
9111 i::Script::Iterator iterator(isolate); 9112 i::Script::Iterator iterator(isolate);
9112 i::Script* script; 9113 i::Script* script;
9113 while ((script = iterator.Next())) { 9114 while ((script = iterator.Next())) {
9114 if (script->type() != i::Script::TYPE_NORMAL) continue; 9115 if (script->type() != i::Script::TYPE_NORMAL) continue;
9115 if (script->HasValidSource()) { 9116 if (script->HasValidSource()) {
9116 i::HandleScope handle_scope(isolate); 9117 i::HandleScope handle_scope(isolate);
9117 i::Handle<i::Script> script_handle(script, isolate); 9118 i::Handle<i::Script> script_handle(script, isolate);
9118 scripts.Append(ToApiHandle<Script>(script_handle)); 9119 scripts.Append(ToApiHandle<Script>(script_handle));
9119 } 9120 }
9120 } 9121 }
9121 } 9122 }
9122 } 9123 }
9123 9124
9124 std::pair<std::string, std::vector<std::tuple<uint32_t, int, int>>> 9125 debug::WasmDisassembly DebugInterface::DisassembleWasmFunction(
9125 DebugInterface::DisassembleWasmFunction(Isolate* v8_isolate, 9126 Isolate* v8_isolate, Local<Object> v8_script, int function_index) {
9126 Local<Object> v8_script,
9127 int function_index) {
9128 i::Isolate* isolate = reinterpret_cast<i::Isolate*>(v8_isolate); 9127 i::Isolate* isolate = reinterpret_cast<i::Isolate*>(v8_isolate);
9129 if (v8_script.IsEmpty()) return {}; 9128 if (v8_script.IsEmpty()) return {};
9130 i::Handle<i::Object> script_wrapper = Utils::OpenHandle(*v8_script); 9129 i::Handle<i::Object> script_wrapper = Utils::OpenHandle(*v8_script);
9131 if (!script_wrapper->IsJSValue()) return {}; 9130 if (!script_wrapper->IsJSValue()) return {};
9132 i::Handle<i::Object> script_obj( 9131 i::Handle<i::Object> script_obj(
9133 i::Handle<i::JSValue>::cast(script_wrapper)->value(), isolate); 9132 i::Handle<i::JSValue>::cast(script_wrapper)->value(), isolate);
9134 if (!script_obj->IsScript()) return {}; 9133 if (!script_obj->IsScript()) return {};
9135 i::Handle<i::Script> script = i::Handle<i::Script>::cast(script_obj); 9134 i::Handle<i::Script> script = i::Handle<i::Script>::cast(script_obj);
9136 if (script->type() != i::Script::TYPE_WASM) return {}; 9135 if (script->type() != i::Script::TYPE_WASM) return {};
9137 i::Handle<i::WasmCompiledModule> compiled_module( 9136 i::Handle<i::WasmCompiledModule> compiled_module(
(...skipping 701 matching lines...) Expand 10 before | Expand all | Expand 10 after
9839 Address callback_address = 9838 Address callback_address =
9840 reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback)); 9839 reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback));
9841 VMState<EXTERNAL> state(isolate); 9840 VMState<EXTERNAL> state(isolate);
9842 ExternalCallbackScope call_scope(isolate, callback_address); 9841 ExternalCallbackScope call_scope(isolate, callback_address);
9843 callback(info); 9842 callback(info);
9844 } 9843 }
9845 9844
9846 9845
9847 } // namespace internal 9846 } // namespace internal
9848 } // namespace v8 9847 } // namespace v8
OLDNEW
« no previous file with comments | « BUILD.gn ('k') | src/debug/debug-interface.h » ('j') | src/debug/interface-types.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698