Chromium Code Reviews| OLD | NEW |
|---|---|
| 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/v8.h" | 5 #include "src/v8.h" |
| 6 | 6 |
| 7 #include "src/disasm.h" | 7 #include "src/disasm.h" |
| 8 #include "src/disassembler.h" | 8 #include "src/disassembler.h" |
| 9 #include "src/heap/objects-visiting.h" | 9 #include "src/heap/objects-visiting.h" |
| 10 #include "src/interpreter/bytecodes.h" | |
| 10 #include "src/jsregexp.h" | 11 #include "src/jsregexp.h" |
| 11 #include "src/ostreams.h" | 12 #include "src/ostreams.h" |
| 12 | 13 |
| 13 namespace v8 { | 14 namespace v8 { |
| 14 namespace internal { | 15 namespace internal { |
| 15 | 16 |
| 16 #ifdef OBJECT_PRINT | 17 #ifdef OBJECT_PRINT |
| 17 | 18 |
| 18 void Object::Print() { | 19 void Object::Print() { |
| 19 OFStream os(stdout); | 20 OFStream os(stdout); |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 65 break; | 66 break; |
| 66 case FIXED_DOUBLE_ARRAY_TYPE: | 67 case FIXED_DOUBLE_ARRAY_TYPE: |
| 67 FixedDoubleArray::cast(this)->FixedDoubleArrayPrint(os); | 68 FixedDoubleArray::cast(this)->FixedDoubleArrayPrint(os); |
| 68 break; | 69 break; |
| 69 case FIXED_ARRAY_TYPE: | 70 case FIXED_ARRAY_TYPE: |
| 70 FixedArray::cast(this)->FixedArrayPrint(os); | 71 FixedArray::cast(this)->FixedArrayPrint(os); |
| 71 break; | 72 break; |
| 72 case BYTE_ARRAY_TYPE: | 73 case BYTE_ARRAY_TYPE: |
| 73 ByteArray::cast(this)->ByteArrayPrint(os); | 74 ByteArray::cast(this)->ByteArrayPrint(os); |
| 74 break; | 75 break; |
| 76 case BYTECODE_ARRAY_TYPE: | |
| 77 BytecodeArray::cast(this)->BytecodeArrayPrint(os); | |
| 78 break; | |
| 75 case FREE_SPACE_TYPE: | 79 case FREE_SPACE_TYPE: |
| 76 FreeSpace::cast(this)->FreeSpacePrint(os); | 80 FreeSpace::cast(this)->FreeSpacePrint(os); |
| 77 break; | 81 break; |
| 78 | 82 |
| 79 #define PRINT_EXTERNAL_ARRAY(Type, type, TYPE, ctype, size) \ | 83 #define PRINT_EXTERNAL_ARRAY(Type, type, TYPE, ctype, size) \ |
| 80 case EXTERNAL_##TYPE##_ARRAY_TYPE: \ | 84 case EXTERNAL_##TYPE##_ARRAY_TYPE: \ |
| 81 External##Type##Array::cast(this)->External##Type##ArrayPrint(os); \ | 85 External##Type##Array::cast(this)->External##Type##ArrayPrint(os); \ |
| 82 break; | 86 break; |
| 83 | 87 |
| 84 TYPED_ARRAYS(PRINT_EXTERNAL_ARRAY) | 88 TYPED_ARRAYS(PRINT_EXTERNAL_ARRAY) |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 190 | 194 |
| 191 default: | 195 default: |
| 192 os << "UNKNOWN TYPE " << map()->instance_type(); | 196 os << "UNKNOWN TYPE " << map()->instance_type(); |
| 193 UNREACHABLE(); | 197 UNREACHABLE(); |
| 194 break; | 198 break; |
| 195 } | 199 } |
| 196 } | 200 } |
| 197 | 201 |
| 198 | 202 |
| 199 void ByteArray::ByteArrayPrint(std::ostream& os) { // NOLINT | 203 void ByteArray::ByteArrayPrint(std::ostream& os) { // NOLINT |
| 200 os << "byte array, data starts at " << GetDataStartAddress(); | 204 ScopedVector<char> buf(100); |
| 205 SNPrintF(buf, "byte array, data starts at %p", GetDataStartAddress()); | |
| 206 os << buf.start(); | |
|
rmcilroy
2015/07/20 11:39:46
nit - do you need to change this function?
oth
2015/07/20 13:47:30
Done.
| |
| 201 } | 207 } |
| 202 | 208 |
| 203 | 209 |
| 210 void BytecodeArray::BytecodeArrayPrint(std::ostream& os) { // NOLINT | |
| 211 ScopedVector<char> buf(100); | |
| 212 SNPrintF(buf, "bytecode array, starts at %p (%d bytes)\n", | |
| 213 GetFirstBytecodeAddress(), length()); | |
| 214 os << buf.start(); | |
|
rmcilroy
2015/07/20 11:39:46
I don't think these lines is necessary - it should
oth
2015/07/20 13:47:30
Done.
| |
| 215 Disassemble(os); | |
| 216 } | |
| 217 | |
| 218 | |
| 204 void FreeSpace::FreeSpacePrint(std::ostream& os) { // NOLINT | 219 void FreeSpace::FreeSpacePrint(std::ostream& os) { // NOLINT |
| 205 os << "free space, size " << Size(); | 220 os << "free space, size " << Size(); |
| 206 } | 221 } |
| 207 | 222 |
| 208 | 223 |
| 209 #define EXTERNAL_ARRAY_PRINTER(Type, type, TYPE, ctype, size) \ | 224 #define EXTERNAL_ARRAY_PRINTER(Type, type, TYPE, ctype, size) \ |
| 210 void External##Type##Array::External##Type##ArrayPrint(std::ostream& os) { \ | 225 void External##Type##Array::External##Type##ArrayPrint(std::ostream& os) { \ |
| 211 os << "external " #type " array"; \ | 226 os << "external " #type " array"; \ |
| 212 } | 227 } |
| 213 | 228 |
| (...skipping 543 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 757 // script()->Print(os); | 772 // script()->Print(os); |
| 758 os << "\n - function token position = " << function_token_position(); | 773 os << "\n - function token position = " << function_token_position(); |
| 759 os << "\n - start position = " << start_position(); | 774 os << "\n - start position = " << start_position(); |
| 760 os << "\n - end position = " << end_position(); | 775 os << "\n - end position = " << end_position(); |
| 761 os << "\n - is expression = " << is_expression(); | 776 os << "\n - is expression = " << is_expression(); |
| 762 os << "\n - debug info = " << Brief(debug_info()); | 777 os << "\n - debug info = " << Brief(debug_info()); |
| 763 os << "\n - length = " << length(); | 778 os << "\n - length = " << length(); |
| 764 os << "\n - optimized_code_map = " << Brief(optimized_code_map()); | 779 os << "\n - optimized_code_map = " << Brief(optimized_code_map()); |
| 765 os << "\n - feedback_vector = "; | 780 os << "\n - feedback_vector = "; |
| 766 feedback_vector()->FixedArrayPrint(os); | 781 feedback_vector()->FixedArrayPrint(os); |
| 782 os << "\n - bytecode_array = " << bytecode_array(); | |
| 767 os << "\n"; | 783 os << "\n"; |
| 768 } | 784 } |
| 769 | 785 |
| 770 | 786 |
| 771 void JSGlobalProxy::JSGlobalProxyPrint(std::ostream& os) { // NOLINT | 787 void JSGlobalProxy::JSGlobalProxyPrint(std::ostream& os) { // NOLINT |
| 772 os << "global_proxy "; | 788 os << "global_proxy "; |
| 773 JSObjectPrint(os); | 789 JSObjectPrint(os); |
| 774 os << "native context : " << Brief(native_context()); | 790 os << "native context : " << Brief(native_context()); |
| 775 os << "\n"; | 791 os << "\n"; |
| 776 } | 792 } |
| (...skipping 394 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1171 } | 1187 } |
| 1172 } | 1188 } |
| 1173 | 1189 |
| 1174 | 1190 |
| 1175 void JSObject::PrintTransitions(std::ostream& os) { // NOLINT | 1191 void JSObject::PrintTransitions(std::ostream& os) { // NOLINT |
| 1176 TransitionArray::PrintTransitions(os, map()->raw_transitions()); | 1192 TransitionArray::PrintTransitions(os, map()->raw_transitions()); |
| 1177 } | 1193 } |
| 1178 #endif // defined(DEBUG) || defined(OBJECT_PRINT) | 1194 #endif // defined(DEBUG) || defined(OBJECT_PRINT) |
| 1179 } // namespace internal | 1195 } // namespace internal |
| 1180 } // namespace v8 | 1196 } // namespace v8 |
| OLD | NEW |