Index: runtime/vm/object.cc |
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc |
index 667892ab5d98e4904b9622e5715069e33d400ae0..1281863012fa2e5ba3365fd64edf7b1c5c61eb81 100644 |
--- a/runtime/vm/object.cc |
+++ b/runtime/vm/object.cc |
@@ -9,17 +9,17 @@ |
#include "vm/assembler.h" |
#include "vm/bigint_operations.h" |
#include "vm/bootstrap.h" |
-#include "vm/datastream.h" |
-#include "vm/deopt_instructions.h" |
+#include "vm/class_finalizer.h" |
#include "vm/code_generator.h" |
#include "vm/code_patcher.h" |
#include "vm/compiler.h" |
#include "vm/compiler_stats.h" |
-#include "vm/class_finalizer.h" |
#include "vm/dart.h" |
#include "vm/dart_api_state.h" |
#include "vm/dart_entry.h" |
+#include "vm/datastream.h" |
#include "vm/debuginfo.h" |
+#include "vm/deopt_instructions.h" |
#include "vm/double_conversion.h" |
#include "vm/exceptions.h" |
#include "vm/growable_array.h" |
@@ -6558,12 +6558,21 @@ const char* PcDescriptors::KindAsStr(intptr_t index) const { |
} |
+void PcDescriptors::PrintHeaderString() { |
+ // 4 bits per hex digit + 2 for "0x". |
+ const int addr_width = (kBitsPerWord / 4) + 2; |
+ OS::Print("%-*s\tkind \ttid\ttok-ix\ttry/deopt-ix\n", addr_width, "pc"); |
+} |
+ |
+ |
const char* PcDescriptors::ToCString() const { |
if (Length() == 0) { |
return "No pc descriptors\n"; |
} |
+ // 4 bits per hex digit. |
+ const int addr_width = kBitsPerWord / 4; |
const char* kFormat = |
- "0x%" PRIxPTR "\t%s\t%" PRIdPTR "\t%" PRIdPTR "\t%" PRIdPTR "\n"; |
+ "0x%-*" PRIxPTR "\t%s\t%" PRIdPTR "\t%" PRIdPTR "\t%" PRIdPTR "\n"; |
Vyacheslav Egorov (Google)
2012/08/13 12:54:46
please add a comment about *
consider making a de
Kevin Millikin (Google)
2012/08/13 15:10:37
Blah. I'd rather use vanilla printf specifiers th
|
// First compute the buffer size required. |
intptr_t len = 1; // Trailing '\0'. |
for (intptr_t i = 0; i < Length(); i++) { |
@@ -6571,7 +6580,7 @@ const char* PcDescriptors::ToCString() const { |
DeoptReason(i) : TokenPos(i); |
intptr_t multi_purpose_index = DescriptorKind(i) == kDeoptIndex ? |
DeoptIndex(i) : TryIndex(i); |
- len += OS::SNPrint(NULL, 0, kFormat, |
+ len += OS::SNPrint(NULL, 0, kFormat, addr_width, |
PC(i), |
KindAsStr(i), |
DeoptId(i), |
@@ -6587,7 +6596,7 @@ const char* PcDescriptors::ToCString() const { |
DeoptReason(i) : TokenPos(i); |
intptr_t multi_purpose_index = DescriptorKind(i) == kDeoptIndex ? |
DeoptIndex(i) : TryIndex(i); |
- index += OS::SNPrint((buffer + index), (len - index), kFormat, |
+ index += OS::SNPrint((buffer + index), (len - index), kFormat, addr_width, |
PC(i), |
KindAsStr(i), |
DeoptId(i), |
@@ -7037,6 +7046,7 @@ RawCode* Code::New(intptr_t pointer_offsets_length) { |
result ^= raw; |
result.set_pointer_offsets_length(pointer_offsets_length); |
result.set_is_optimized(false); |
+ result.set_spill_slot_count(0); |
result.set_comments(Comments::New(0)); |
} |
return result.raw(); |