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

Side by Side Diff: runtime/vm/debugger.cc

Issue 11941021: More ^= to |= (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 11 months 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 | Annotate | Revision Log
« no previous file with comments | « runtime/vm/dart_api_impl_test.cc ('k') | runtime/vm/deopt_instructions.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include "vm/debugger.h" 5 #include "vm/debugger.h"
6 6
7 #include "include/dart_api.h" 7 #include "include/dart_api.h"
8 8
9 #include "vm/code_generator.h" 9 #include "vm/code_generator.h"
10 #include "vm/code_patcher.h" 10 #include "vm/code_patcher.h"
(...skipping 490 matching lines...) Expand 10 before | Expand all | Expand 10 after
501 501
502 void ActivationFrame::VariableAt(intptr_t i, 502 void ActivationFrame::VariableAt(intptr_t i,
503 String* name, 503 String* name,
504 intptr_t* token_pos, 504 intptr_t* token_pos,
505 intptr_t* end_pos, 505 intptr_t* end_pos,
506 Instance* value) { 506 Instance* value) {
507 GetDescIndices(); 507 GetDescIndices();
508 ASSERT(i < desc_indices_.length()); 508 ASSERT(i < desc_indices_.length());
509 intptr_t desc_index = desc_indices_[i]; 509 intptr_t desc_index = desc_indices_[i];
510 ASSERT(name != NULL); 510 ASSERT(name != NULL);
511 *name ^= var_descriptors_.GetName(desc_index); 511 *name |= var_descriptors_.GetName(desc_index);
512 RawLocalVarDescriptors::VarInfo var_info; 512 RawLocalVarDescriptors::VarInfo var_info;
513 var_descriptors_.GetInfo(desc_index, &var_info); 513 var_descriptors_.GetInfo(desc_index, &var_info);
514 ASSERT(token_pos != NULL); 514 ASSERT(token_pos != NULL);
515 *token_pos = var_info.begin_pos; 515 *token_pos = var_info.begin_pos;
516 ASSERT(end_pos != NULL); 516 ASSERT(end_pos != NULL);
517 *end_pos = var_info.end_pos; 517 *end_pos = var_info.end_pos;
518 ASSERT(value != NULL); 518 ASSERT(value != NULL);
519 if (var_info.kind == RawLocalVarDescriptors::kStackVar) { 519 if (var_info.kind == RawLocalVarDescriptors::kStackVar) {
520 *value = GetLocalVarValue(var_info.index); 520 *value = GetLocalVarValue(var_info.index);
521 } else { 521 } else {
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after
817 Class& cls = Class::Handle(); 817 Class& cls = Class::Handle();
818 Array& functions = Array::Handle(); 818 Array& functions = Array::Handle();
819 Function& function = Function::Handle(); 819 Function& function = Function::Handle();
820 intptr_t num_classes = class_table.NumCids(); 820 intptr_t num_classes = class_table.NumCids();
821 for (intptr_t i = 1; i < num_classes; i++) { 821 for (intptr_t i = 1; i < num_classes; i++) {
822 if (class_table.HasValidClassAt(i)) { 822 if (class_table.HasValidClassAt(i)) {
823 cls = class_table.At(i); 823 cls = class_table.At(i);
824 functions = cls.functions(); 824 functions = cls.functions();
825 intptr_t num_functions = functions.IsNull() ? 0 : functions.Length(); 825 intptr_t num_functions = functions.IsNull() ? 0 : functions.Length();
826 for (intptr_t f = 0; f < num_functions; f++) { 826 for (intptr_t f = 0; f < num_functions; f++) {
827 function ^= functions.At(f); 827 function |= functions.At(f);
828 ASSERT(!function.IsNull()); 828 ASSERT(!function.IsNull());
829 if (function.HasOptimizedCode()) { 829 if (function.HasOptimizedCode()) {
830 function.SwitchToUnoptimizedCode(); 830 function.SwitchToUnoptimizedCode();
831 } 831 }
832 } 832 }
833 } 833 }
834 } 834 }
835 } 835 }
836 836
837 837
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after
1135 } 1135 }
1136 1136
1137 1137
1138 SourceBreakpoint* Debugger::SetBreakpointAtLine(const String& script_url, 1138 SourceBreakpoint* Debugger::SetBreakpointAtLine(const String& script_url,
1139 intptr_t line_number) { 1139 intptr_t line_number) {
1140 Library& lib = Library::Handle(); 1140 Library& lib = Library::Handle();
1141 Script& script = Script::Handle(); 1141 Script& script = Script::Handle();
1142 const GrowableObjectArray& libs = 1142 const GrowableObjectArray& libs =
1143 GrowableObjectArray::Handle(isolate_->object_store()->libraries()); 1143 GrowableObjectArray::Handle(isolate_->object_store()->libraries());
1144 for (int i = 0; i < libs.Length(); i++) { 1144 for (int i = 0; i < libs.Length(); i++) {
1145 lib ^= libs.At(i); 1145 lib |= libs.At(i);
1146 script = lib.LookupScript(script_url); 1146 script = lib.LookupScript(script_url);
1147 if (!script.IsNull()) { 1147 if (!script.IsNull()) {
1148 break; 1148 break;
1149 } 1149 }
1150 } 1150 }
1151 if (script.IsNull()) { 1151 if (script.IsNull()) {
1152 if (FLAG_verbose_debug) { 1152 if (FLAG_verbose_debug) {
1153 OS::Print("Failed to find script with url '%s'\n", 1153 OS::Print("Failed to find script with url '%s'\n",
1154 script_url.ToCString()); 1154 script_url.ToCString());
1155 } 1155 }
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
1270 Array& fields = Array::Handle(); 1270 Array& fields = Array::Handle();
1271 Field& field = Field::Handle(); 1271 Field& field = Field::Handle();
1272 const GrowableObjectArray& field_list = 1272 const GrowableObjectArray& field_list =
1273 GrowableObjectArray::Handle(GrowableObjectArray::New(8)); 1273 GrowableObjectArray::Handle(GrowableObjectArray::New(8));
1274 String& field_name = String::Handle(); 1274 String& field_name = String::Handle();
1275 Object& field_value = Object::Handle(); 1275 Object& field_value = Object::Handle();
1276 // Iterate over fields in class hierarchy to count all instance fields. 1276 // Iterate over fields in class hierarchy to count all instance fields.
1277 while (!cls.IsNull()) { 1277 while (!cls.IsNull()) {
1278 fields = cls.fields(); 1278 fields = cls.fields();
1279 for (int i = 0; i < fields.Length(); i++) { 1279 for (int i = 0; i < fields.Length(); i++) {
1280 field ^= fields.At(i); 1280 field |= fields.At(i);
1281 if (!field.is_static()) { 1281 if (!field.is_static()) {
1282 field_name = field.name(); 1282 field_name = field.name();
1283 field_list.Add(field_name); 1283 field_list.Add(field_name);
1284 field_value = GetInstanceField(cls, field_name, obj); 1284 field_value = GetInstanceField(cls, field_name, obj);
1285 field_list.Add(field_value); 1285 field_list.Add(field_value);
1286 } 1286 }
1287 } 1287 }
1288 cls = cls.SuperClass(); 1288 cls = cls.SuperClass();
1289 } 1289 }
1290 return Array::MakeArray(field_list); 1290 return Array::MakeArray(field_list);
1291 } 1291 }
1292 1292
1293 1293
1294 RawArray* Debugger::GetStaticFields(const Class& cls) { 1294 RawArray* Debugger::GetStaticFields(const Class& cls) {
1295 const GrowableObjectArray& field_list = 1295 const GrowableObjectArray& field_list =
1296 GrowableObjectArray::Handle(GrowableObjectArray::New(8)); 1296 GrowableObjectArray::Handle(GrowableObjectArray::New(8));
1297 Array& fields = Array::Handle(cls.fields()); 1297 Array& fields = Array::Handle(cls.fields());
1298 Field& field = Field::Handle(); 1298 Field& field = Field::Handle();
1299 String& field_name = String::Handle(); 1299 String& field_name = String::Handle();
1300 Object& field_value = Object::Handle(); 1300 Object& field_value = Object::Handle();
1301 for (int i = 0; i < fields.Length(); i++) { 1301 for (int i = 0; i < fields.Length(); i++) {
1302 field ^= fields.At(i); 1302 field |= fields.At(i);
1303 if (field.is_static()) { 1303 if (field.is_static()) {
1304 field_name = field.name(); 1304 field_name = field.name();
1305 field_value = GetStaticField(cls, field_name); 1305 field_value = GetStaticField(cls, field_name);
1306 field_list.Add(field_name); 1306 field_list.Add(field_name);
1307 field_list.Add(field_value); 1307 field_list.Add(field_value);
1308 } 1308 }
1309 } 1309 }
1310 return Array::MakeArray(field_list); 1310 return Array::MakeArray(field_list);
1311 } 1311 }
1312 1312
1313 1313
1314 void Debugger::CollectLibraryFields(const GrowableObjectArray& field_list, 1314 void Debugger::CollectLibraryFields(const GrowableObjectArray& field_list,
1315 const Library& lib, 1315 const Library& lib,
1316 const String& prefix, 1316 const String& prefix,
1317 bool include_private_fields) { 1317 bool include_private_fields) {
1318 DictionaryIterator it(lib); 1318 DictionaryIterator it(lib);
1319 Object& entry = Object::Handle(isolate_); 1319 Object& entry = Object::Handle(isolate_);
1320 Field& field = Field::Handle(isolate_); 1320 Field& field = Field::Handle(isolate_);
1321 Class& cls = Class::Handle(isolate_); 1321 Class& cls = Class::Handle(isolate_);
1322 String& field_name = String::Handle(isolate_); 1322 String& field_name = String::Handle(isolate_);
1323 Object& field_value = Object::Handle(isolate_); 1323 Object& field_value = Object::Handle(isolate_);
1324 while (it.HasNext()) { 1324 while (it.HasNext()) {
1325 entry = it.GetNext(); 1325 entry = it.GetNext();
1326 if (entry.IsField()) { 1326 if (entry.IsField()) {
1327 field ^= entry.raw(); 1327 field |= entry.raw();
1328 cls = field.owner(); 1328 cls = field.owner();
1329 ASSERT(field.is_static()); 1329 ASSERT(field.is_static());
1330 field_name = field.name(); 1330 field_name = field.name();
1331 if ((field_name.CharAt(0) == '_') && !include_private_fields) { 1331 if ((field_name.CharAt(0) == '_') && !include_private_fields) {
1332 // Skip library-private field. 1332 // Skip library-private field.
1333 continue; 1333 continue;
1334 } 1334 }
1335 field_value = GetStaticField(cls, field_name); 1335 field_value = GetStaticField(cls, field_name);
1336 if (!prefix.IsNull()) { 1336 if (!prefix.IsNull()) {
1337 field_name = String::Concat(prefix, field_name); 1337 field_name = String::Concat(prefix, field_name);
(...skipping 385 matching lines...) Expand 10 before | Expand all | Expand 10 after
1723 } 1723 }
1724 1724
1725 1725
1726 void Debugger::RegisterCodeBreakpoint(CodeBreakpoint* bpt) { 1726 void Debugger::RegisterCodeBreakpoint(CodeBreakpoint* bpt) {
1727 ASSERT(bpt->next() == NULL); 1727 ASSERT(bpt->next() == NULL);
1728 bpt->set_next(code_breakpoints_); 1728 bpt->set_next(code_breakpoints_);
1729 code_breakpoints_ = bpt; 1729 code_breakpoints_ = bpt;
1730 } 1730 }
1731 1731
1732 } // namespace dart 1732 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/dart_api_impl_test.cc ('k') | runtime/vm/deopt_instructions.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698