[vm] Replace most runtime/vm uses of OS::Print with OS::PrintErr.
Leave --print-snapshot-sizes on stdout because it is parsed by Flutter benchmarks.
Replace all runtime/bin uses of OS::Print with Log::Print.
Bug: https://github.com/dart-lang/sdk/issues/32134
Change-Id: I74aacfb410cdfa9270d06e7f6ab0534520c7c7ba
Reviewed-on: https://dart-review.googlesource.com/60021
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Zach Anderson <zra@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
diff --git a/pkg/vm/test/incremental_compiler_test.dart b/pkg/vm/test/incremental_compiler_test.dart
index 3736600..3eaa3a3 100644
--- a/pkg/vm/test/incremental_compiler_test.dart
+++ b/pkg/vm/test/incremental_compiler_test.dart
@@ -103,16 +103,6 @@
}
});
- vm.stderr
- .transform(utf8.decoder)
- .transform(splitter)
- .toList()
- .then((err) {
- print(err.join('\n'));
- expect(err.isEmpty, isTrue,
- reason: "Should be no errors, but got ${err.join('\n')}");
- });
-
String portLine = await portLineCompleter.future;
final RegExp observatoryPortRegExp =
diff --git a/runtime/bin/run_vm_tests.cc b/runtime/bin/run_vm_tests.cc
index b255370..9f54ee1 100644
--- a/runtime/bin/run_vm_tests.cc
+++ b/runtime/bin/run_vm_tests.cc
@@ -2,8 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-#include <stdio.h>
-
#include "bin/console.h"
#include "bin/dartutils.h"
#include "bin/dfe.h"
@@ -54,15 +52,15 @@
static int run_matches = 0;
void TestCase::Run() {
- OS::Print("Running test: %s\n", name());
+ bin::Log::Print("Running test: %s\n", name());
(*run_)();
- OS::Print("Done: %s\n", name());
+ bin::Log::Print("Done: %s\n", name());
}
void RawTestCase::Run() {
- OS::Print("Running test: %s\n", name());
+ bin::Log::Print("Running test: %s\n", name());
(*run_)();
- OS::Print("Done: %s\n", name());
+ bin::Log::Print("Done: %s\n", name());
}
void TestCaseBase::RunTest() {
@@ -70,7 +68,7 @@
this->Run();
run_matches++;
} else if (run_filter == kList) {
- OS::Print("%s\n", this->name());
+ bin::Log::Print("%s\n", this->name());
run_matches++;
}
}
@@ -79,17 +77,17 @@
if ((run_filter == kAllBenchmarks) ||
(strcmp(run_filter, this->name()) == 0)) {
this->Run();
- OS::Print("%s(%s): %" Pd64 "\n", this->name(), this->score_kind(),
- this->score());
+ bin::Log::Print("%s(%s): %" Pd64 "\n", this->name(), this->score_kind(),
+ this->score());
run_matches++;
} else if (run_filter == kList) {
- OS::Print("%s\n", this->name());
+ bin::Log::Print("%s\n", this->name());
run_matches++;
}
}
static void PrintUsage() {
- OS::PrintErr(
+ bin::Log::PrintErr(
"Usage: one of the following\n"
" run_vm_tests --list\n"
" run_vm_tests [--dfe=<snapshot file name>] --benchmarks\n"
@@ -212,7 +210,7 @@
// Perform platform specific initialization.
if (!dart::bin::Platform::Initialize()) {
- OS::PrintErr("Initialization failed\n");
+ bin::Log::PrintErr("Initialization failed\n");
return 1;
}
@@ -240,7 +238,7 @@
if (strstr(argv[arg_pos], "--dfe") == argv[arg_pos]) {
const char* delim = strstr(argv[1], "=");
if (delim == NULL || strlen(delim + 1) == 0) {
- OS::PrintErr("Invalid value for the option: %s\n", argv[1]);
+ bin::Log::PrintErr("Invalid value for the option: %s\n", argv[1]);
PrintUsage();
return 1;
}
@@ -294,7 +292,7 @@
TestCaseBase::RunAllRaw();
// Print a warning message if no tests or benchmarks were matched.
if (run_matches == 0) {
- OS::PrintErr("No tests matched: %s\n", run_filter);
+ bin::Log::PrintErr("No tests matched: %s\n", run_filter);
return 1;
}
if (Expect::failed()) {
diff --git a/runtime/lib/double.cc b/runtime/lib/double.cc
index 4fc5baa..3aaeaa9 100644
--- a/runtime/lib/double.cc
+++ b/runtime/lib/double.cc
@@ -23,7 +23,7 @@
ASSERT(TypeArguments::CheckedHandle(arguments->NativeArgAt(0)).IsNull());
const Integer& value = Integer::CheckedHandle(arguments->NativeArgAt(1));
if (FLAG_trace_intrinsified_natives) {
- OS::Print("Double_doubleFromInteger %s\n", value.ToCString());
+ OS::PrintErr("Double_doubleFromInteger %s\n", value.ToCString());
}
return Double::New(value.AsDoubleValue());
}
@@ -33,7 +33,7 @@
GET_NON_NULL_NATIVE_ARGUMENT(Double, right_object, arguments->NativeArgAt(1));
double right = right_object.value();
if (FLAG_trace_intrinsified_natives) {
- OS::Print("Double_add %f + %f\n", left, right);
+ OS::PrintErr("Double_add %f + %f\n", left, right);
}
return Double::New(left + right);
}
@@ -43,7 +43,7 @@
GET_NON_NULL_NATIVE_ARGUMENT(Double, right_object, arguments->NativeArgAt(1));
double right = right_object.value();
if (FLAG_trace_intrinsified_natives) {
- OS::Print("Double_sub %f - %f\n", left, right);
+ OS::PrintErr("Double_sub %f - %f\n", left, right);
}
return Double::New(left - right);
}
@@ -53,7 +53,7 @@
GET_NON_NULL_NATIVE_ARGUMENT(Double, right_object, arguments->NativeArgAt(1));
double right = right_object.value();
if (FLAG_trace_intrinsified_natives) {
- OS::Print("Double_mul %f * %f\n", left, right);
+ OS::PrintErr("Double_mul %f * %f\n", left, right);
}
return Double::New(left * right);
}
@@ -63,7 +63,7 @@
GET_NON_NULL_NATIVE_ARGUMENT(Double, right_object, arguments->NativeArgAt(1));
double right = right_object.value();
if (FLAG_trace_intrinsified_natives) {
- OS::Print("Double_div %f / %f\n", left, right);
+ OS::PrintErr("Double_div %f / %f\n", left, right);
}
return Double::New(left / right);
}
@@ -88,7 +88,7 @@
DEFINE_NATIVE_ENTRY(Double_hashCode, 1) {
double val = Double::CheckedHandle(arguments->NativeArgAt(0)).value();
if (FLAG_trace_intrinsified_natives) {
- OS::Print("Double_hashCode %f\n", val);
+ OS::PrintErr("Double_hashCode %f\n", val);
}
if (val >= static_cast<double>(kMinInt64) &&
val <= static_cast<double>(kMaxInt64)) {
@@ -107,7 +107,7 @@
GET_NON_NULL_NATIVE_ARGUMENT(Double, right_object, arguments->NativeArgAt(1));
double right = right_object.value();
if (FLAG_trace_intrinsified_natives) {
- OS::Print("Double_trunc_div %f ~/ %f\n", left, right);
+ OS::PrintErr("Double_trunc_div %f ~/ %f\n", left, right);
}
return DoubleToInteger(trunc(left / right),
"Result of truncating division is Infinity or NaN");
@@ -132,8 +132,8 @@
GET_NON_NULL_NATIVE_ARGUMENT(Double, right, arguments->NativeArgAt(1));
bool result = right.IsNull() ? false : (left.value() > right.value());
if (FLAG_trace_intrinsified_natives) {
- OS::Print("Double_greaterThan %s > %s\n", left.ToCString(),
- right.ToCString());
+ OS::PrintErr("Double_greaterThan %s > %s\n", left.ToCString(),
+ right.ToCString());
}
return Bool::Get(result).raw();
}
@@ -149,7 +149,8 @@
GET_NON_NULL_NATIVE_ARGUMENT(Double, right, arguments->NativeArgAt(1));
bool result = right.IsNull() ? false : (left.value() == right.value());
if (FLAG_trace_intrinsified_natives) {
- OS::Print("Double_equal %s == %s\n", left.ToCString(), right.ToCString());
+ OS::PrintErr("Double_equal %s == %s\n", left.ToCString(),
+ right.ToCString());
}
return Bool::Get(result).raw();
}
diff --git a/runtime/lib/integers.cc b/runtime/lib/integers.cc
index 4b93733..2b9f0d4 100644
--- a/runtime/lib/integers.cc
+++ b/runtime/lib/integers.cc
@@ -39,8 +39,8 @@
ASSERT(CheckInteger(right));
ASSERT(CheckInteger(left));
if (FLAG_trace_intrinsified_natives) {
- OS::Print("Integer_bitAndFromInteger %s & %s\n", right.ToCString(),
- left.ToCString());
+ OS::PrintErr("Integer_bitAndFromInteger %s & %s\n", right.ToCString(),
+ left.ToCString());
}
const Integer& result = Integer::Handle(left.BitOp(Token::kBIT_AND, right));
// A null result indicates that a bigint operation is required.
@@ -53,8 +53,8 @@
ASSERT(CheckInteger(right));
ASSERT(CheckInteger(left));
if (FLAG_trace_intrinsified_natives) {
- OS::Print("Integer_bitOrFromInteger %s | %s\n", left.ToCString(),
- right.ToCString());
+ OS::PrintErr("Integer_bitOrFromInteger %s | %s\n", left.ToCString(),
+ right.ToCString());
}
const Integer& result = Integer::Handle(left.BitOp(Token::kBIT_OR, right));
// A null result indicates that a bigint operation is required.
@@ -67,8 +67,8 @@
ASSERT(CheckInteger(right));
ASSERT(CheckInteger(left));
if (FLAG_trace_intrinsified_natives) {
- OS::Print("Integer_bitXorFromInteger %s ^ %s\n", left.ToCString(),
- right.ToCString());
+ OS::PrintErr("Integer_bitXorFromInteger %s ^ %s\n", left.ToCString(),
+ right.ToCString());
}
const Integer& result = Integer::Handle(left.BitOp(Token::kBIT_XOR, right));
// A null result indicates that a bigint operation is required.
@@ -81,8 +81,8 @@
ASSERT(CheckInteger(right_int));
ASSERT(CheckInteger(left_int));
if (FLAG_trace_intrinsified_natives) {
- OS::Print("Integer_addFromInteger %s + %s\n", left_int.ToCString(),
- right_int.ToCString());
+ OS::PrintErr("Integer_addFromInteger %s + %s\n", left_int.ToCString(),
+ right_int.ToCString());
}
const Integer& result =
Integer::Handle(left_int.ArithmeticOp(Token::kADD, right_int));
@@ -96,8 +96,8 @@
ASSERT(CheckInteger(right_int));
ASSERT(CheckInteger(left_int));
if (FLAG_trace_intrinsified_natives) {
- OS::Print("Integer_subFromInteger %s - %s\n", left_int.ToCString(),
- right_int.ToCString());
+ OS::PrintErr("Integer_subFromInteger %s - %s\n", left_int.ToCString(),
+ right_int.ToCString());
}
const Integer& result =
Integer::Handle(left_int.ArithmeticOp(Token::kSUB, right_int));
@@ -111,8 +111,8 @@
ASSERT(CheckInteger(right_int));
ASSERT(CheckInteger(left_int));
if (FLAG_trace_intrinsified_natives) {
- OS::Print("Integer_mulFromInteger %s * %s\n", left_int.ToCString(),
- right_int.ToCString());
+ OS::PrintErr("Integer_mulFromInteger %s * %s\n", left_int.ToCString(),
+ right_int.ToCString());
}
const Integer& result =
Integer::Handle(left_int.ArithmeticOp(Token::kMUL, right_int));
@@ -138,8 +138,8 @@
ASSERT(CheckInteger(right_int));
ASSERT(CheckInteger(left_int));
if (FLAG_trace_intrinsified_natives) {
- OS::Print("Integer_moduloFromInteger %s mod %s\n", left_int.ToCString(),
- right_int.ToCString());
+ OS::PrintErr("Integer_moduloFromInteger %s mod %s\n", left_int.ToCString(),
+ right_int.ToCString());
}
if (right_int.IsZero()) {
// Should have been caught before calling into runtime.
@@ -157,8 +157,8 @@
ASSERT(CheckInteger(right));
ASSERT(CheckInteger(left));
if (FLAG_trace_intrinsified_natives) {
- OS::Print("Integer_greaterThanFromInteger %s > %s\n", left.ToCString(),
- right.ToCString());
+ OS::PrintErr("Integer_greaterThanFromInteger %s > %s\n", left.ToCString(),
+ right.ToCString());
}
return Bool::Get(left.CompareWith(right) == 1).raw();
}
@@ -169,8 +169,8 @@
ASSERT(CheckInteger(left));
ASSERT(CheckInteger(right));
if (FLAG_trace_intrinsified_natives) {
- OS::Print("Integer_equalToInteger %s == %s\n", left.ToCString(),
- right.ToCString());
+ OS::PrintErr("Integer_equalToInteger %s == %s\n", left.ToCString(),
+ right.ToCString());
}
return Bool::Get(left.CompareWith(right) == 0).raw();
}
@@ -260,8 +260,8 @@
const Smi& left = Smi::CheckedHandle(arguments->NativeArgAt(0));
GET_NON_NULL_NATIVE_ARGUMENT(Smi, right, arguments->NativeArgAt(1));
if (FLAG_trace_intrinsified_natives) {
- OS::Print("Smi_bitAndFromSmi %s & %s\n", left.ToCString(),
- right.ToCString());
+ OS::PrintErr("Smi_bitAndFromSmi %s & %s\n", left.ToCString(),
+ right.ToCString());
}
const Smi& left_value = Smi::Cast(left);
const Smi& right_value = Smi::Cast(right);
@@ -285,8 +285,8 @@
ASSERT(CheckInteger(amount));
ASSERT(CheckInteger(value));
if (FLAG_trace_intrinsified_natives) {
- OS::Print("Smi_shlFromInt: %s << %s\n", value.ToCString(),
- amount.ToCString());
+ OS::PrintErr("Smi_shlFromInt: %s << %s\n", value.ToCString(),
+ amount.ToCString());
}
const Integer& result =
Integer::Handle(ShiftOperationHelper(Token::kSHL, value, amount));
@@ -297,7 +297,7 @@
DEFINE_NATIVE_ENTRY(Smi_bitNegate, 1) {
const Smi& operand = Smi::CheckedHandle(arguments->NativeArgAt(0));
if (FLAG_trace_intrinsified_natives) {
- OS::Print("Smi_bitNegate: %s\n", operand.ToCString());
+ OS::PrintErr("Smi_bitNegate: %s\n", operand.ToCString());
}
intptr_t result = ~operand.Value();
ASSERT(Smi::IsValid(result));
@@ -307,7 +307,7 @@
DEFINE_NATIVE_ENTRY(Smi_bitLength, 1) {
const Smi& operand = Smi::CheckedHandle(arguments->NativeArgAt(0));
if (FLAG_trace_intrinsified_natives) {
- OS::Print("Smi_bitLength: %s\n", operand.ToCString());
+ OS::PrintErr("Smi_bitLength: %s\n", operand.ToCString());
}
int64_t value = operand.AsInt64Value();
intptr_t result = Utils::BitLength(value);
@@ -321,7 +321,7 @@
const Mint& operand = Mint::CheckedHandle(arguments->NativeArgAt(0));
ASSERT(CheckInteger(operand));
if (FLAG_trace_intrinsified_natives) {
- OS::Print("Mint_bitNegate: %s\n", operand.ToCString());
+ OS::PrintErr("Mint_bitNegate: %s\n", operand.ToCString());
}
int64_t result = ~operand.value();
return Integer::New(result);
@@ -331,7 +331,7 @@
const Mint& operand = Mint::CheckedHandle(arguments->NativeArgAt(0));
ASSERT(CheckInteger(operand));
if (FLAG_trace_intrinsified_natives) {
- OS::Print("Mint_bitLength: %s\n", operand.ToCString());
+ OS::PrintErr("Mint_bitLength: %s\n", operand.ToCString());
}
int64_t value = operand.AsInt64Value();
intptr_t result = Utils::BitLength(value);
diff --git a/runtime/lib/object.cc b/runtime/lib/object.cc
index dd04cd4..c3a6a6c 100644
--- a/runtime/lib/object.cc
+++ b/runtime/lib/object.cc
@@ -144,15 +144,15 @@
type, instantiator_type_arguments, function_type_arguments, &bound_error);
if (FLAG_trace_type_checks) {
const char* result_str = is_instance_of ? "true" : "false";
- OS::Print("Native Object.instanceOf: result %s\n", result_str);
+ OS::PrintErr("Native Object.instanceOf: result %s\n", result_str);
const AbstractType& instance_type =
AbstractType::Handle(zone, instance.GetType(Heap::kNew));
- OS::Print(" instance type: %s\n",
- String::Handle(zone, instance_type.Name()).ToCString());
- OS::Print(" test type: %s\n",
- String::Handle(zone, type.Name()).ToCString());
+ OS::PrintErr(" instance type: %s\n",
+ String::Handle(zone, instance_type.Name()).ToCString());
+ OS::PrintErr(" test type: %s\n",
+ String::Handle(zone, type.Name()).ToCString());
if (!bound_error.IsNull()) {
- OS::Print(" bound error: %s\n", bound_error.ToErrorCString());
+ OS::PrintErr(" bound error: %s\n", bound_error.ToErrorCString());
}
}
if (!is_instance_of && !bound_error.IsNull()) {
@@ -223,15 +223,15 @@
function_type_arguments, &bound_error);
if (FLAG_trace_type_checks) {
const char* result_str = is_instance_of ? "true" : "false";
- OS::Print("Object.as: result %s\n", result_str);
+ OS::PrintErr("Object.as: result %s\n", result_str);
const AbstractType& instance_type =
AbstractType::Handle(zone, instance.GetType(Heap::kNew));
- OS::Print(" instance type: %s\n",
- String::Handle(zone, instance_type.Name()).ToCString());
- OS::Print(" cast type: %s\n",
- String::Handle(zone, type.Name()).ToCString());
+ OS::PrintErr(" instance type: %s\n",
+ String::Handle(zone, instance_type.Name()).ToCString());
+ OS::PrintErr(" cast type: %s\n",
+ String::Handle(zone, type.Name()).ToCString());
if (!bound_error.IsNull()) {
- OS::Print(" bound error: %s\n", bound_error.ToErrorCString());
+ OS::PrintErr(" bound error: %s\n", bound_error.ToErrorCString());
}
}
if (!is_instance_of) {
diff --git a/runtime/lib/profiler.cc b/runtime/lib/profiler.cc
index 1ff14ba..d892a5c 100644
--- a/runtime/lib/profiler.cc
+++ b/runtime/lib/profiler.cc
@@ -31,7 +31,7 @@
DEFINE_NATIVE_ENTRY(UserTag_makeCurrent, 1) {
const UserTag& self = UserTag::CheckedHandle(arguments->NativeArgAt(0));
if (FLAG_trace_intrinsified_natives) {
- OS::Print("UserTag_makeCurrent: %s\n", self.ToCString());
+ OS::PrintErr("UserTag_makeCurrent: %s\n", self.ToCString());
}
const UserTag& old = UserTag::Handle(isolate->current_tag());
self.MakeActive();
@@ -40,14 +40,14 @@
DEFINE_NATIVE_ENTRY(UserTag_defaultTag, 0) {
if (FLAG_trace_intrinsified_natives) {
- OS::Print("UserTag_defaultTag\n");
+ OS::PrintErr("UserTag_defaultTag\n");
}
return isolate->default_tag();
}
DEFINE_NATIVE_ENTRY(Profiler_getCurrentTag, 0) {
if (FLAG_trace_intrinsified_natives) {
- OS::Print("Profiler_getCurrentTag\n");
+ OS::PrintErr("Profiler_getCurrentTag\n");
}
return isolate->current_tag();
}
diff --git a/runtime/vm/bit_vector.cc b/runtime/vm/bit_vector.cc
index bb1df4d..c48324b 100644
--- a/runtime/vm/bit_vector.cc
+++ b/runtime/vm/bit_vector.cc
@@ -105,11 +105,11 @@
}
void BitVector::Print() const {
- OS::Print("[");
+ OS::PrintErr("[");
for (intptr_t i = 0; i < length_; i++) {
- OS::Print(Contains(i) ? "1" : "0");
+ OS::PrintErr(Contains(i) ? "1" : "0");
}
- OS::Print("]");
+ OS::PrintErr("]");
}
} // namespace dart
diff --git a/runtime/vm/bitmap.cc b/runtime/vm/bitmap.cc
index fd1d343..79bab3c 100644
--- a/runtime/vm/bitmap.cc
+++ b/runtime/vm/bitmap.cc
@@ -70,9 +70,9 @@
void BitmapBuilder::Print() const {
for (intptr_t i = 0; i < Length(); i++) {
if (Get(i)) {
- OS::Print("1");
+ OS::PrintErr("1");
} else {
- OS::Print("0");
+ OS::PrintErr("0");
}
}
}
diff --git a/runtime/vm/bitmap_test.cc b/runtime/vm/bitmap_test.cc
index 98a5e17..2d28f8b 100644
--- a/runtime/vm/bitmap_test.cc
+++ b/runtime/vm/bitmap_test.cc
@@ -39,7 +39,7 @@
// Create a StackMap object from the builder and verify its contents.
const StackMap& stackmap1 = StackMap::Handle(StackMap::New(0, builder1, 0));
EXPECT_EQ(1024, stackmap1.Length());
- OS::Print("%s\n", stackmap1.ToCString());
+ OS::PrintErr("%s\n", stackmap1.ToCString());
value = true;
for (int32_t i = 0; i < 1024; i++) {
EXPECT_EQ(value, stackmap1.IsObject(i));
diff --git a/runtime/vm/class_finalizer.cc b/runtime/vm/class_finalizer.cc
index bceab3b..5ae8029 100644
--- a/runtime/vm/class_finalizer.cc
+++ b/runtime/vm/class_finalizer.cc
@@ -190,7 +190,7 @@
#if !defined(DART_PRECOMPILED_RUNTIME)
void ClassFinalizer::VerifyBootstrapClasses() {
if (FLAG_trace_class_finalization) {
- OS::Print("VerifyBootstrapClasses START.\n");
+ OS::PrintErr("VerifyBootstrapClasses START.\n");
}
ObjectStore* object_store = Isolate::Current()->object_store();
@@ -249,7 +249,7 @@
OS::Exit(255);
}
if (FLAG_trace_class_finalization) {
- OS::Print("VerifyBootstrapClasses END.\n");
+ OS::PrintErr("VerifyBootstrapClasses END.\n");
}
Isolate::Current()->heap()->Verify();
}
diff --git a/runtime/vm/class_table.cc b/runtime/vm/class_table.cc
index 447ea45..c07f14a 100644
--- a/runtime/vm/class_table.cc
+++ b/runtime/vm/class_table.cc
@@ -252,7 +252,7 @@
cls = At(i);
if (cls.raw() != reinterpret_cast<RawClass*>(0)) {
name = cls.Name();
- OS::Print("%" Pd ": %s\n", i, name.ToCString());
+ OS::PrintErr("%" Pd ": %s\n", i, name.ToCString());
}
}
}
diff --git a/runtime/vm/clustered_snapshot.cc b/runtime/vm/clustered_snapshot.cc
index 869d283..378b2e6 100644
--- a/runtime/vm/clustered_snapshot.cc
+++ b/runtime/vm/clustered_snapshot.cc
@@ -4987,7 +4987,7 @@
#if !defined(DART_PRECOMPILED_RUNTIME)
if (FLAG_print_snapshot_sizes_verbose) {
- OS::Print(" Cluster Objs Size Fraction Cumulative\n");
+ OS::PrintErr(" Cluster Objs Size Fraction Cumulative\n");
GrowableArray<SerializationCluster*> clusters_by_size;
for (intptr_t cid = 1; cid < num_cids_; cid++) {
SerializationCluster* cluster = clusters_by_cid_[cid];
@@ -5007,9 +5007,9 @@
SerializationCluster* cluster = clusters_by_size[i];
double fraction = static_cast<double>(cluster->size()) / total_size;
cumulative_fraction += fraction;
- OS::Print("%20s %6" Pd " %8" Pd " %lf %lf\n", cluster->name(),
- cluster->num_objects(), cluster->size(), fraction,
- cumulative_fraction);
+ OS::PrintErr("%20s %6" Pd " %8" Pd " %lf %lf\n", cluster->name(),
+ cluster->num_objects(), cluster->size(), fraction,
+ cumulative_fraction);
}
}
#endif // !defined(DART_PRECOMPILED_RUNTIME)
diff --git a/runtime/vm/code_descriptors_test.cc b/runtime/vm/code_descriptors_test.cc
index b67e93d..65f1890 100644
--- a/runtime/vm/code_descriptors_test.cc
+++ b/runtime/vm/code_descriptors_test.cc
@@ -305,8 +305,8 @@
intptr_t i = 0;
while (it.MoveNext()) {
if (token_positions[i] != it.TokenPos().value()) {
- OS::Print("[%" Pd "]: Expected: %" Pd " != %" Pd "\n", i,
- token_positions[i], it.TokenPos().value());
+ OS::PrintErr("[%" Pd "]: Expected: %" Pd " != %" Pd "\n", i,
+ token_positions[i], it.TokenPos().value());
}
EXPECT(token_positions[i] == it.TokenPos().value());
i++;
diff --git a/runtime/vm/compiler/backend/flow_graph.cc b/runtime/vm/compiler/backend/flow_graph.cc
index 5f55e9f..1f079f6 100644
--- a/runtime/vm/compiler/backend/flow_graph.cc
+++ b/runtime/vm/compiler/backend/flow_graph.cc
@@ -274,8 +274,8 @@
merged->Add(successor->postorder_number());
changed = true;
if (FLAG_trace_optimization) {
- OS::Print("Merged blocks B%" Pd " and B%" Pd "\n", block->block_id(),
- successor->block_id());
+ OS::PrintErr("Merged blocks B%" Pd " and B%" Pd "\n", block->block_id(),
+ successor->block_id());
}
}
// The new block inherits the block id of the last successor to maintain
@@ -580,25 +580,25 @@
}
static void PrintBitVector(const char* tag, BitVector* v) {
- OS::Print("%s:", tag);
+ OS::PrintErr("%s:", tag);
for (BitVector::Iterator it(v); !it.Done(); it.Advance()) {
- OS::Print(" %" Pd "", it.Current());
+ OS::PrintErr(" %" Pd "", it.Current());
}
- OS::Print("\n");
+ OS::PrintErr("\n");
}
void LivenessAnalysis::Dump() {
const intptr_t block_count = postorder_.length();
for (intptr_t i = 0; i < block_count; i++) {
BlockEntryInstr* block = postorder_[i];
- OS::Print("block @%" Pd " -> ", block->block_id());
+ OS::PrintErr("block @%" Pd " -> ", block->block_id());
Instruction* last = block->last_instruction();
for (intptr_t j = 0; j < last->SuccessorCount(); j++) {
BlockEntryInstr* succ = last->SuccessorAt(j);
- OS::Print(" @%" Pd "", succ->block_id());
+ OS::PrintErr(" @%" Pd "", succ->block_id());
}
- OS::Print("\n");
+ OS::PrintErr("\n");
PrintBitVector(" live out", live_out_[i]);
PrintBitVector(" kill", kill_[i]);
@@ -1450,8 +1450,8 @@
BlockEntryInstr* pred = block->PredecessorAt(i);
if (block->Dominates(pred)) {
if (FLAG_trace_optimization) {
- OS::Print("Back edge B%" Pd " -> B%" Pd "\n", pred->block_id(),
- block->block_id());
+ OS::PrintErr("Back edge B%" Pd " -> B%" Pd "\n", pred->block_id(),
+ block->block_id());
}
BitVector* loop_info = FindLoop(pred, block);
// Loops that share the same loop header are treated as one loop.
@@ -1474,10 +1474,10 @@
if (FLAG_trace_optimization) {
for (intptr_t i = 0; i < loop_headers->length(); ++i) {
BlockEntryInstr* header = (*loop_headers)[i];
- OS::Print("Loop header B%" Pd "\n", header->block_id());
+ OS::PrintErr("Loop header B%" Pd "\n", header->block_id());
for (BitVector::Iterator it(header->loop_info()); !it.Done();
it.Advance()) {
- OS::Print(" B%" Pd "\n", preorder_[it.Current()]->block_id());
+ OS::PrintErr(" B%" Pd "\n", preorder_[it.Current()]->block_id());
}
}
}
diff --git a/runtime/vm/compiler/backend/il.cc b/runtime/vm/compiler/backend/il.cc
index 1b2910b..d58201a 100644
--- a/runtime/vm/compiler/backend/il.cc
+++ b/runtime/vm/compiler/backend/il.cc
@@ -2829,7 +2829,7 @@
comp->RemoveFromGraph();
SetComparison(comp);
if (FLAG_trace_optimization) {
- OS::Print("Merging comparison v%" Pd "\n", comp->ssa_temp_index());
+ OS::PrintErr("Merging comparison v%" Pd "\n", comp->ssa_temp_index());
}
// Clear the comparison's temp index and ssa temp index since the
// value of the comparison is not used outside the branch anymore.
@@ -2850,7 +2850,7 @@
}
if (bit_and != NULL) {
if (FLAG_trace_optimization) {
- OS::Print("Merging test smi v%" Pd "\n", bit_and->ssa_temp_index());
+ OS::PrintErr("Merging test smi v%" Pd "\n", bit_and->ssa_temp_index());
}
TestSmiInstr* test = new TestSmiInstr(
comparison()->token_pos(),
diff --git a/runtime/vm/compiler/backend/range_analysis_test.cc b/runtime/vm/compiler/backend/range_analysis_test.cc
index 52c8694..c67708f 100644
--- a/runtime/vm/compiler/backend/range_analysis_test.cc
+++ b/runtime/vm/compiler/backend/range_analysis_test.cc
@@ -38,11 +38,11 @@
max = Clamp(max); \
EXPECT(min.Equals(res_min)); \
if (FLAG_support_il_printer && !min.Equals(res_min)) { \
- OS::Print("%s\n", min.ToCString()); \
+ OS::PrintErr("%s\n", min.ToCString()); \
} \
EXPECT(max.Equals(res_max)); \
if (FLAG_support_il_printer && !max.Equals(res_max)) { \
- OS::Print("%s\n", max.ToCString()); \
+ OS::PrintErr("%s\n", max.ToCString()); \
} \
}
@@ -317,11 +317,11 @@
Range::Add(left_range, right_range, &min, &max, NULL); \
EXPECT(min.Equals(result_min)); \
if (FLAG_support_il_printer && !min.Equals(result_min)) { \
- OS::Print("%s != %s\n", min.ToCString(), result_min.ToCString()); \
+ OS::PrintErr("%s != %s\n", min.ToCString(), result_min.ToCString()); \
} \
EXPECT(max.Equals(result_max)); \
if (FLAG_support_il_printer && !max.Equals(result_max)) { \
- OS::Print("%s != %s\n", max.ToCString(), result_max.ToCString()); \
+ OS::PrintErr("%s != %s\n", max.ToCString(), result_max.ToCString()); \
} \
}
@@ -397,11 +397,11 @@
Range::Sub(left_range, right_range, &min, &max, NULL); \
EXPECT(min.Equals(result_min)); \
if (FLAG_support_il_printer && !min.Equals(result_min)) { \
- OS::Print("%s != %s\n", min.ToCString(), result_min.ToCString()); \
+ OS::PrintErr("%s != %s\n", min.ToCString(), result_min.ToCString()); \
} \
EXPECT(max.Equals(result_max)); \
if (FLAG_support_il_printer && !max.Equals(result_max)) { \
- OS::Print("%s != %s\n", max.ToCString(), result_max.ToCString()); \
+ OS::PrintErr("%s != %s\n", max.ToCString(), result_max.ToCString()); \
} \
}
@@ -450,11 +450,11 @@
Range::And(left_range, right_range, &min, &max); \
EXPECT(min.Equals(result_min)); \
if (FLAG_support_il_printer && !min.Equals(result_min)) { \
- OS::Print("%s != %s\n", min.ToCString(), result_min.ToCString()); \
+ OS::PrintErr("%s != %s\n", min.ToCString(), result_min.ToCString()); \
} \
EXPECT(max.Equals(result_max)); \
if (FLAG_support_il_printer && !max.Equals(result_max)) { \
- OS::Print("%s != %s\n", max.ToCString(), result_max.ToCString()); \
+ OS::PrintErr("%s != %s\n", max.ToCString(), result_max.ToCString()); \
} \
}
diff --git a/runtime/vm/compiler/jit/jit_call_specializer.cc b/runtime/vm/compiler/jit/jit_call_specializer.cc
index 0359572..fa0ae29 100644
--- a/runtime/vm/compiler/jit/jit_call_specializer.cc
+++ b/runtime/vm/compiler/jit/jit_call_specializer.cc
@@ -205,10 +205,12 @@
if (FLAG_trace_optimization || FLAG_trace_field_guards) {
THR_Print("Disabling unboxing of %s\n", field.ToCString());
if (!setter.IsNull()) {
- OS::Print(" setter usage count: %" Pd "\n", setter.usage_counter());
+ OS::PrintErr(" setter usage count: %" Pd "\n",
+ setter.usage_counter());
}
if (!getter.IsNull()) {
- OS::Print(" getter usage count: %" Pd "\n", getter.usage_counter());
+ OS::PrintErr(" getter usage count: %" Pd "\n",
+ getter.usage_counter());
}
}
ASSERT(field.IsOriginal());
diff --git a/runtime/vm/custom_isolate_test.cc b/runtime/vm/custom_isolate_test.cc
index 77b2181f..5351e10 100644
--- a/runtime/vm/custom_isolate_test.cc
+++ b/runtime/vm/custom_isolate_test.cc
@@ -164,7 +164,7 @@
};
void StartEvent::Process() {
- OS::Print(">> StartEvent with isolate(%p)--\n", isolate());
+ OS::PrintErr(">> StartEvent with isolate(%p)--\n", isolate());
Dart_EnterIsolate(isolate());
Dart_EnterScope();
Dart_Handle result;
@@ -193,7 +193,7 @@
};
void MessageEvent::Process() {
- OS::Print("$$ MessageEvent with isolate(%p)\n", isolate());
+ OS::PrintErr("$$ MessageEvent with isolate(%p)\n", isolate());
Dart_EnterIsolate(isolate());
Dart_EnterScope();
@@ -201,7 +201,7 @@
EXPECT_VALID(result);
if (!Dart_HasLivePorts()) {
- OS::Print("<< Shutting down isolate(%p)\n", isolate());
+ OS::PrintErr("<< Shutting down isolate(%p)\n", isolate());
event_queue->RemoveEventsForIsolate(isolate());
Dart_SetMessageNotifyCallback(NULL);
Dart_ExitScope();
@@ -214,8 +214,8 @@
}
static void NotifyMessage(Dart_Isolate dest_isolate) {
- OS::Print("-- Notify isolate(%p) of pending message --\n", dest_isolate);
- OS::Print("-- Adding MessageEvent to queue --\n");
+ OS::PrintErr("-- Notify isolate(%p) of pending message --\n", dest_isolate);
+ OS::PrintErr("-- Adding MessageEvent to queue --\n");
event_queue->Add(new MessageEvent(dest_isolate));
}
@@ -247,12 +247,12 @@
free(saved_echo);
}
saved_echo = strdup(c_str);
- OS::Print("-- (isolate=%p) %s\n", Dart_CurrentIsolate(), c_str);
+ OS::PrintErr("-- (isolate=%p) %s\n", Dart_CurrentIsolate(), c_str);
Dart_ExitScope();
}
static void CustomIsolateImpl_start(Dart_NativeArguments args) {
- OS::Print("-- Enter: CustomIsolateImpl_start --\n");
+ OS::PrintErr("-- Enter: CustomIsolateImpl_start --\n");
// We would probably want to pass in the this pointer too, so we
// could associate the CustomIsolateImpl instance with the
@@ -287,7 +287,7 @@
Dart_Handle err = Dart_SendPortGetId(main_send_port, &main_port_id);
EXPECT_VALID(err);
- OS::Print("-- Adding StartEvent to queue --\n");
+ OS::PrintErr("-- Adding StartEvent to queue --\n");
event_queue->Add(new StartEvent(new_isolate, isolate_main));
// Restore the original isolate.
@@ -300,7 +300,7 @@
EXPECT_VALID(send_port);
Dart_SetReturnValue(args, send_port);
- OS::Print("-- Exit: CustomIsolateImpl_start --\n");
+ OS::PrintErr("-- Exit: CustomIsolateImpl_start --\n");
Dart_ExitScope();
}
@@ -335,14 +335,14 @@
Dart_ExitScope();
Dart_ExitIsolate();
- OS::Print("-- Starting event loop --\n");
+ OS::PrintErr("-- Starting event loop --\n");
Event* event = event_queue->Get();
while (event) {
event->Process();
delete event;
event = event_queue->Get();
}
- OS::Print("-- Finished event loop --\n");
+ OS::PrintErr("-- Finished event loop --\n");
EXPECT_STREQ("Received: 43", saved_echo);
free(saved_echo);
diff --git a/runtime/vm/dart.cc b/runtime/vm/dart.cc
index 6318284..06adc84 100644
--- a/runtime/vm/dart.cc
+++ b/runtime/vm/dart.cc
@@ -246,15 +246,15 @@
}
#endif // !defined(PRODUCT)
if (FLAG_trace_isolates) {
- OS::Print("Size of vm isolate snapshot = %" Pd "\n",
- snapshot->length());
+ OS::PrintErr("Size of vm isolate snapshot = %" Pd "\n",
+ snapshot->length());
vm_isolate_->heap()->PrintSizes();
MegamorphicCacheTable::PrintSizes(vm_isolate_);
intptr_t size;
intptr_t capacity;
Symbols::GetStats(vm_isolate_, &size, &capacity);
- OS::Print("VM Isolate: Number of symbols : %" Pd "\n", size);
- OS::Print("VM Isolate: Symbol table capacity : %" Pd "\n", capacity);
+ OS::PrintErr("VM Isolate: Number of symbols : %" Pd "\n", size);
+ OS::PrintErr("VM Isolate: Symbol table capacity : %" Pd "\n", capacity);
}
} else {
#if defined(DART_PRECOMPILED_RUNTIME)
@@ -553,7 +553,7 @@
return ApiError::New(message);
}
if (FLAG_trace_isolates) {
- OS::Print("Size of isolate snapshot = %" Pd "\n", snapshot->length());
+ OS::PrintErr("Size of isolate snapshot = %" Pd "\n", snapshot->length());
}
FullSnapshotReader reader(snapshot, snapshot_instructions, shared_data,
shared_instructions, T);
diff --git a/runtime/vm/dart_api_impl_test.cc b/runtime/vm/dart_api_impl_test.cc
index ee787e4..f0ada37 100644
--- a/runtime/vm/dart_api_impl_test.cc
+++ b/runtime/vm/dart_api_impl_test.cc
@@ -6338,7 +6338,7 @@
const Error& err = Error::Handle(lib.Patch(patch_script));
if (!err.IsNull()) {
- OS::Print("Patching error: %s\n", err.ToErrorCString());
+ OS::PrintErr("Patching error: %s\n", err.ToErrorCString());
EXPECT(false);
}
}
@@ -8819,7 +8819,7 @@
EXPECT_VALID(result);
result = Dart_Invoke(lib, NewString("foozoo"), 0, NULL);
EXPECT(Dart_IsError(result));
- OS::Print("Patched class executed\n");
+ OS::PrintErr("Patched class executed\n");
}
TEST_CASE(DartAPI_LoadLibraryPatch_Error3) {
diff --git a/runtime/vm/debugger.cc b/runtime/vm/debugger.cc
index e922ec77..bb87152 100644
--- a/runtime/vm/debugger.cc
+++ b/runtime/vm/debugger.cc
@@ -2906,7 +2906,7 @@
intptr_t line_number;
intptr_t column_number;
script.GetTokenLocation(breakpoint_pos, &line_number, &column_number);
- OS::Print(
+ OS::PrintErr(
"Resolved BP for "
"function '%s' at line %" Pd " col %" Pd "\n",
func.ToFullyQualifiedCString(), line_number, column_number);
@@ -2923,12 +2923,12 @@
intptr_t column_number;
script.GetTokenLocation(token_pos, &line_number, &column_number);
if (func.IsNull()) {
- OS::Print(
+ OS::PrintErr(
"Registering pending breakpoint for "
"an uncompiled function literal at line %" Pd " col %" Pd "\n",
line_number, column_number);
} else {
- OS::Print(
+ OS::PrintErr(
"Registering pending breakpoint for "
"uncompiled function '%s' at line %" Pd " col %" Pd "\n",
func.ToFullyQualifiedCString(), line_number, column_number);
@@ -3072,7 +3072,7 @@
BreakpointLocation* latent_bpt =
GetLatentBreakpoint(script_url, line_number, column_number);
if (FLAG_verbose_debug) {
- OS::Print(
+ OS::PrintErr(
"Set latent breakpoint in url '%s' at "
"line %" Pd " col %" Pd "\n",
script_url.ToCString(), line_number, column_number);
@@ -3081,7 +3081,7 @@
}
if (scripts.Length() > 1) {
if (FLAG_verbose_debug) {
- OS::Print("Multiple scripts match url '%s'\n", script_url.ToCString());
+ OS::PrintErr("Multiple scripts match url '%s'\n", script_url.ToCString());
}
return NULL;
}
@@ -3091,15 +3091,15 @@
if (!first_token_idx.IsReal()) {
// Script does not contain the given line number.
if (FLAG_verbose_debug) {
- OS::Print("Script '%s' does not contain line number %" Pd "\n",
- script_url.ToCString(), line_number);
+ OS::PrintErr("Script '%s' does not contain line number %" Pd "\n",
+ script_url.ToCString(), line_number);
}
return NULL;
} else if (!last_token_idx.IsReal()) {
// Line does not contain any tokens.
if (FLAG_verbose_debug) {
- OS::Print("No executable code at line %" Pd " in '%s'\n", line_number,
- script_url.ToCString());
+ OS::PrintErr("No executable code at line %" Pd " in '%s'\n", line_number,
+ script_url.ToCString());
}
return NULL;
}
@@ -3112,8 +3112,8 @@
first_token_idx.Next();
}
if ((bpt == NULL) && FLAG_verbose_debug) {
- OS::Print("No executable code at line %" Pd " in '%s'\n", line_number,
- script_url.ToCString());
+ OS::PrintErr("No executable code at line %" Pd " in '%s'\n", line_number,
+ script_url.ToCString());
}
return bpt;
}
@@ -3449,7 +3449,7 @@
skip_next_step_ = skip_next_step;
SetAsyncSteppingFramePointer();
if (FLAG_verbose_debug) {
- OS::Print("HandleSteppingRequest- kStepInto\n");
+ OS::PrintErr("HandleSteppingRequest- kStepInto\n");
}
} else if (resume_action_ == kStepOver) {
DeoptimizeWorld();
@@ -3459,7 +3459,7 @@
stepping_fp_ = stack_trace->FrameAt(0)->fp();
SetAsyncSteppingFramePointer();
if (FLAG_verbose_debug) {
- OS::Print("HandleSteppingRequest- kStepOver %" Px "\n", stepping_fp_);
+ OS::PrintErr("HandleSteppingRequest- kStepOver %" Px "\n", stepping_fp_);
}
} else if (resume_action_ == kStepOut) {
if (FLAG_async_debugger) {
@@ -3488,7 +3488,7 @@
}
}
if (FLAG_verbose_debug) {
- OS::Print("HandleSteppingRequest- kStepOut %" Px "\n", stepping_fp_);
+ OS::PrintErr("HandleSteppingRequest- kStepOut %" Px "\n", stepping_fp_);
}
} else if (resume_action_ == kStepRewind) {
if (FLAG_trace_rewind) {
@@ -3874,11 +3874,11 @@
ASSERT(!HasActiveBreakpoint(frame->pc()));
if (FLAG_verbose_debug) {
- OS::Print(">>> single step break at %s:%" Pd " (func %s token %s)\n",
- String::Handle(frame->SourceUrl()).ToCString(),
- frame->LineNumber(),
- String::Handle(frame->QualifiedFunctionName()).ToCString(),
- frame->TokenPos().ToCString());
+ OS::PrintErr(">>> single step break at %s:%" Pd " (func %s token %s)\n",
+ String::Handle(frame->SourceUrl()).ToCString(),
+ frame->LineNumber(),
+ String::Handle(frame->QualifiedFunctionName()).ToCString(),
+ frame->TokenPos().ToCString());
}
CacheStackTraces(CollectStackTrace(), CollectAsyncCausalStackTrace(),
@@ -3923,12 +3923,12 @@
// Hit a synthetic async breakpoint.
if (FLAG_verbose_debug) {
- OS::Print(">>> hit synthetic breakpoint at %s:%" Pd
- " "
- "(token %s) (address %#" Px ")\n",
- String::Handle(cbpt->SourceUrl()).ToCString(),
- cbpt->LineNumber(), cbpt->token_pos().ToCString(),
- top_frame->pc());
+ OS::PrintErr(">>> hit synthetic breakpoint at %s:%" Pd
+ " "
+ "(token %s) (address %#" Px ")\n",
+ String::Handle(cbpt->SourceUrl()).ToCString(),
+ cbpt->LineNumber(), cbpt->token_pos().ToCString(),
+ top_frame->pc());
}
ASSERT(synthetic_async_breakpoint_ == NULL);
@@ -3946,12 +3946,12 @@
}
if (FLAG_verbose_debug) {
- OS::Print(">>> hit breakpoint %" Pd " at %s:%" Pd
- " (token %s) "
- "(address %#" Px ")\n",
- bpt_hit->id(), String::Handle(cbpt->SourceUrl()).ToCString(),
- cbpt->LineNumber(), cbpt->token_pos().ToCString(),
- top_frame->pc());
+ OS::PrintErr(">>> hit breakpoint %" Pd " at %s:%" Pd
+ " (token %s) "
+ "(address %#" Px ")\n",
+ bpt_hit->id(), String::Handle(cbpt->SourceUrl()).ToCString(),
+ cbpt->LineNumber(), cbpt->token_pos().ToCString(),
+ top_frame->pc());
}
CacheStackTraces(stack_trace, CollectAsyncCausalStackTrace(),
@@ -4105,8 +4105,8 @@
// be compiled already.
ASSERT(!inner_function.HasCode());
if (FLAG_verbose_debug) {
- OS::Print("Pending BP remains unresolved in inner function '%s'\n",
- inner_function.ToFullyQualifiedCString());
+ OS::PrintErr("Pending BP remains unresolved in inner function '%s'\n",
+ inner_function.ToFullyQualifiedCString());
}
continue;
}
@@ -4125,8 +4125,8 @@
loc->requested_column_number());
if (!bp_pos.IsDebugPause()) {
if (FLAG_verbose_debug) {
- OS::Print("Failed resolving breakpoint for function '%s'\n",
- String::Handle(func.name()).ToCString());
+ OS::PrintErr("Failed resolving breakpoint for function '%s'\n",
+ String::Handle(func.name()).ToCString());
}
continue;
}
@@ -4136,17 +4136,17 @@
Breakpoint* bpt = loc->breakpoints();
while (bpt != NULL) {
if (FLAG_verbose_debug) {
- OS::Print("Resolved BP %" Pd
- " to pos %s, "
- "line %" Pd " col %" Pd
- ", "
- "function '%s' (requested range %s-%s, "
- "requested col %" Pd ")\n",
- bpt->id(), loc->token_pos().ToCString(),
- loc->LineNumber(), loc->ColumnNumber(),
- func.ToFullyQualifiedCString(), requested_pos.ToCString(),
- requested_end_pos.ToCString(),
- loc->requested_column_number());
+ OS::PrintErr(
+ "Resolved BP %" Pd
+ " to pos %s, "
+ "line %" Pd " col %" Pd
+ ", "
+ "function '%s' (requested range %s-%s, "
+ "requested col %" Pd ")\n",
+ bpt->id(), loc->token_pos().ToCString(), loc->LineNumber(),
+ loc->ColumnNumber(), func.ToFullyQualifiedCString(),
+ requested_pos.ToCString(), requested_end_pos.ToCString(),
+ loc->requested_column_number());
}
SendBreakpointEvent(ServiceEvent::kBreakpointResolved, bpt);
bpt = bpt->next();
@@ -4156,12 +4156,12 @@
if (FLAG_verbose_debug) {
Breakpoint* bpt = loc->breakpoints();
while (bpt != NULL) {
- OS::Print("Setting breakpoint %" Pd " at line %" Pd " col %" Pd
- ""
- " for %s '%s'\n",
- bpt->id(), loc->LineNumber(), loc->ColumnNumber(),
- func.IsClosureFunction() ? "closure" : "function",
- String::Handle(func.name()).ToCString());
+ OS::PrintErr("Setting breakpoint %" Pd " at line %" Pd " col %" Pd
+ ""
+ " for %s '%s'\n",
+ bpt->id(), loc->LineNumber(), loc->ColumnNumber(),
+ func.IsClosureFunction() ? "closure" : "function",
+ String::Handle(func.name()).ToCString());
bpt = bpt->next();
}
}
@@ -4213,10 +4213,10 @@
Breakpoint* bpt = matched_loc->breakpoints();
while (bpt != NULL) {
if (FLAG_verbose_debug) {
- OS::Print("No code found at line %" Pd
- ": "
- "dropping latent breakpoint %" Pd " in '%s'\n",
- line_number, bpt->id(), url.ToCString());
+ OS::PrintErr("No code found at line %" Pd
+ ": "
+ "dropping latent breakpoint %" Pd " in '%s'\n",
+ line_number, bpt->id(), url.ToCString());
}
Breakpoint* prev = bpt;
bpt = bpt->next();
@@ -4245,7 +4245,7 @@
while (bpt != NULL) {
bpt->set_bpt_location(unresolved_loc);
if (FLAG_verbose_debug) {
- OS::Print(
+ OS::PrintErr(
"Converted latent breakpoint "
"%" Pd " in '%s' at line %" Pd " col %" Pd "\n",
bpt->id(), url.ToCString(), line_number, column_number);
@@ -4273,7 +4273,7 @@
if (FLAG_verbose_debug) {
Breakpoint* bpt = loc->breakpoints();
while (bpt != NULL) {
- OS::Print(
+ OS::PrintErr(
"No match found for latent breakpoint id "
"%" Pd " with url '%s'\n",
bpt->id(), url.ToCString());
diff --git a/runtime/vm/exceptions_test.cc b/runtime/vm/exceptions_test.cc
index 55ca394..fcd8869 100644
--- a/runtime/vm/exceptions_test.cc
+++ b/runtime/vm/exceptions_test.cc
@@ -17,8 +17,8 @@
const Instance& expected = Instance::CheckedHandle(arguments->NativeArgAt(0));
const Instance& actual = Instance::CheckedHandle(arguments->NativeArgAt(1));
if (!expected.CanonicalizeEquals(actual)) {
- OS::Print("expected: '%s' actual: '%s'\n", expected.ToCString(),
- actual.ToCString());
+ OS::PrintErr("expected: '%s' actual: '%s'\n", expected.ToCString(),
+ actual.ToCString());
FATAL("Unhandled_equals fails.\n");
}
}
diff --git a/runtime/vm/flags.cc b/runtime/vm/flags.cc
index 9120a8e..7b454b3 100644
--- a/runtime/vm/flags.cc
+++ b/runtime/vm/flags.cc
@@ -105,34 +105,35 @@
void Print() {
if (IsUnrecognized()) {
- OS::Print("%s: unrecognized\n", name_);
+ OS::PrintErr("%s: unrecognized\n", name_);
return;
}
switch (type_) {
case kBoolean: {
- OS::Print("%s: %s (%s)\n", name_, *this->bool_ptr_ ? "true" : "false",
- comment_);
+ OS::PrintErr("%s: %s (%s)\n", name_,
+ *this->bool_ptr_ ? "true" : "false", comment_);
break;
}
case kInteger: {
- OS::Print("%s: %d (%s)\n", name_, *this->int_ptr_, comment_);
+ OS::PrintErr("%s: %d (%s)\n", name_, *this->int_ptr_, comment_);
break;
}
case kUint64: {
- OS::Print("%s: %" Pu64 " (%s)\n", name_, *this->uint64_ptr_, comment_);
+ OS::PrintErr("%s: %" Pu64 " (%s)\n", name_, *this->uint64_ptr_,
+ comment_);
break;
}
case kString: {
if (*this->charp_ptr_ != NULL) {
- OS::Print("%s: '%s' (%s)\n", name_, *this->charp_ptr_, comment_);
+ OS::PrintErr("%s: '%s' (%s)\n", name_, *this->charp_ptr_, comment_);
} else {
- OS::Print("%s: (null) (%s)\n", name_, comment_);
+ OS::PrintErr("%s: (null) (%s)\n", name_, comment_);
}
break;
}
case kOptionHandler:
case kFlagHandler: {
- OS::Print("%s: (%s)\n", name_, comment_);
+ OS::PrintErr("%s: (%s)\n", name_, comment_);
break;
}
default:
@@ -391,8 +392,8 @@
// unrecognized flags.
if (!flag->IsUnrecognized()) {
if (!SetFlagFromString(flag, argument)) {
- OS::Print("Ignoring flag: %s is an invalid value for flag %s\n",
- argument, name);
+ OS::PrintErr("Ignoring flag: %s is an invalid value for flag %s\n",
+ argument, name);
}
}
}
@@ -473,7 +474,7 @@
}
void Flags::PrintFlags() {
- OS::Print("Flag settings:\n");
+ OS::PrintErr("Flag settings:\n");
for (intptr_t i = 0; i < num_flags_; ++i) {
flags_[i]->Print();
}
diff --git a/runtime/vm/freelist.cc b/runtime/vm/freelist.cc
index 6e5dded..c90fead 100644
--- a/runtime/vm/freelist.cc
+++ b/runtime/vm/freelist.cc
@@ -265,7 +265,7 @@
small_objects += list_length;
intptr_t list_bytes = list_length * i * kObjectAlignment;
small_bytes += list_bytes;
- OS::Print(
+ OS::PrintErr(
"small %3d [%8d bytes] : "
"%8" Pd " objs; %8.1f KB; %8.1f cum KB\n",
i, i * kObjectAlignment, list_length,
@@ -322,12 +322,12 @@
intptr_t list_length = pair->second();
intptr_t list_bytes = list_length * size;
large_bytes += list_bytes;
- OS::Print("large %3" Pd " [%8" Pd
- " bytes] : "
- "%8" Pd " objs; %8.1f KB; %8.1f cum KB\n",
- size / kObjectAlignment, size, list_length,
- list_bytes / static_cast<double>(KB),
- large_bytes / static_cast<double>(KB));
+ OS::PrintErr("large %3" Pd " [%8" Pd
+ " bytes] : "
+ "%8" Pd " objs; %8.1f KB; %8.1f cum KB\n",
+ size / kObjectAlignment, size, list_length,
+ list_bytes / static_cast<double>(KB),
+ large_bytes / static_cast<double>(KB));
}
}
diff --git a/runtime/vm/hash_table.h b/runtime/vm/hash_table.h
index 24ae04c..2c408e7 100644
--- a/runtime/vm/hash_table.h
+++ b/runtime/vm/hash_table.h
@@ -323,7 +323,7 @@
const intptr_t num25 = NumLT25Collisions();
const intptr_t num_more = NumGT25Collisions();
// clang-format off
- OS::Print("Stats for %s table :\n"
+ OS::PrintErr("Stats for %s table :\n"
" Size of table = %" Pd ",Number of Occupied entries = %" Pd "\n"
" Number of Grows = %" Pd "\n"
" Number of lookups with < 5 collisions = %" Pd "\n"
diff --git a/runtime/vm/heap_test.cc b/runtime/vm/heap_test.cc
index d073611..23def28f 100644
--- a/runtime/vm/heap_test.cc
+++ b/runtime/vm/heap_test.cc
@@ -82,10 +82,10 @@
}
static void DumpClassHeapStats(ClassHeapStats* stats) {
- OS::Print("%" Pd " ", stats->recent.new_count);
- OS::Print("%" Pd " ", stats->post_gc.new_count);
- OS::Print("%" Pd " ", stats->pre_gc.new_count);
- OS::Print("\n");
+ OS::PrintErr("%" Pd " ", stats->recent.new_count);
+ OS::PrintErr("%" Pd " ", stats->post_gc.new_count);
+ OS::PrintErr("%" Pd " ", stats->pre_gc.new_count);
+ OS::PrintErr("\n");
}
};
diff --git a/runtime/vm/isolate.cc b/runtime/vm/isolate.cc
index 5337d5a..f0840c0 100644
--- a/runtime/vm/isolate.cc
+++ b/runtime/vm/isolate.cc
@@ -700,7 +700,7 @@
MessageHandler::MessageStatus IsolateMessageHandler::ProcessUnhandledException(
const Error& result) {
if (FLAG_trace_isolates) {
- OS::Print(
+ OS::PrintErr(
"[!] Unhandled exception in %s:\n"
" exception: %s\n",
T->isolate()->name(), result.ToErrorCString());
@@ -1104,7 +1104,7 @@
#endif
if (FLAG_trace_isolates) {
if (name_prefix == NULL || strcmp(name_prefix, "vm-isolate") != 0) {
- OS::Print(
+ OS::PrintErr(
"[+] Starting isolate:\n"
"\tisolate: %s\n",
result->name());
@@ -1765,7 +1765,7 @@
}
if (FLAG_trace_isolates) {
heap()->PrintSizes();
- OS::Print(
+ OS::PrintErr(
"[-] Stopping isolate:\n"
"\tisolate: %s\n",
name());
@@ -1826,7 +1826,7 @@
if (FLAG_support_compiler_stats && FLAG_compiler_stats &&
!ServiceIsolate::IsServiceIsolateDescendant(this) &&
(this != Dart::vm_isolate())) {
- OS::Print("%s", aggregate_compiler_stats()->PrintToZone());
+ OS::PrintErr("%s", aggregate_compiler_stats()->PrintToZone());
}
}
@@ -2506,7 +2506,7 @@
const int64_t reload_time_micros =
OS::GetCurrentMonotonicMicros() - start_time_micros;
double reload_millis = MicrosecondsToMilliseconds(reload_time_micros);
- OS::Print("Reloading has finished! (%.2f ms)\n", reload_millis);
+ OS::PrintErr("Reloading has finished! (%.2f ms)\n", reload_millis);
}
break;
}
diff --git a/runtime/vm/json_writer.cc b/runtime/vm/json_writer.cc
index 4e7c98a..7c3aa7f 100644
--- a/runtime/vm/json_writer.cc
+++ b/runtime/vm/json_writer.cc
@@ -317,7 +317,7 @@
void JSONWriter::EnsureIntegerIsRepresentableInJavaScript(int64_t i) {
#ifdef DEBUG
if (!Utils::IsJavascriptInt(i)) {
- OS::Print(
+ OS::PrintErr(
"JSONWriter::EnsureIntegerIsRepresentableInJavaScript failed on "
"%" Pd64 "\n",
i);
diff --git a/runtime/vm/kernel_isolate.cc b/runtime/vm/kernel_isolate.cc
index 64b6982..dd39430 100644
--- a/runtime/vm/kernel_isolate.cc
+++ b/runtime/vm/kernel_isolate.cc
@@ -134,7 +134,7 @@
protected:
static void ShutdownIsolate(uword parameter) {
if (FLAG_trace_kernel) {
- OS::Print(DART_KERNEL_ISOLATE_NAME ": ShutdownIsolate\n");
+ OS::PrintErr(DART_KERNEL_ISOLATE_NAME ": ShutdownIsolate\n");
}
Isolate* I = reinterpret_cast<Isolate*>(parameter);
I->WaitForOutstandingSpawns();
@@ -168,7 +168,7 @@
// Shut the isolate down.
Dart::ShutdownIsolate(I);
if (FLAG_trace_kernel) {
- OS::Print(DART_KERNEL_ISOLATE_NAME ": Shutdown.\n");
+ OS::PrintErr(DART_KERNEL_ISOLATE_NAME ": Shutdown.\n");
}
// This should be the last line so the check
// IsKernelIsolate works during the shutdown process.
@@ -184,8 +184,8 @@
const Library& root_library =
Library::Handle(Z, I->object_store()->root_library());
if (root_library.IsNull()) {
- OS::Print(DART_KERNEL_ISOLATE_NAME
- ": Embedder did not install a script.");
+ OS::PrintErr(DART_KERNEL_ISOLATE_NAME
+ ": Embedder did not install a script.");
// Kernel isolate is not supported by embedder.
return false;
}
@@ -196,8 +196,8 @@
Z, root_library.LookupFunctionAllowPrivate(entry_name));
if (entry.IsNull()) {
// Kernel isolate is not supported by embedder.
- OS::Print(DART_KERNEL_ISOLATE_NAME
- ": Embedder did not provide a main function.");
+ OS::PrintErr(DART_KERNEL_ISOLATE_NAME
+ ": Embedder did not provide a main function.");
return false;
}
ASSERT(!entry.IsNull());
@@ -207,9 +207,9 @@
if (result.IsError()) {
// Kernel isolate did not initialize properly.
const Error& error = Error::Cast(result);
- OS::Print(DART_KERNEL_ISOLATE_NAME
- ": Calling main resulted in an error: %s",
- error.ToErrorCString());
+ OS::PrintErr(DART_KERNEL_ISOLATE_NAME
+ ": Calling main resulted in an error: %s",
+ error.ToErrorCString());
return false;
}
ASSERT(result.IsReceivePort());
@@ -236,7 +236,8 @@
}
ASSERT(!Exists());
if (FLAG_trace_kernel) {
- OS::Print(DART_KERNEL_ISOLATE_NAME ": InitCallback for %s.\n", I->name());
+ OS::PrintErr(DART_KERNEL_ISOLATE_NAME ": InitCallback for %s.\n",
+ I->name());
}
SetKernelIsolate(I);
}
diff --git a/runtime/vm/log.h b/runtime/vm/log.h
index e28c02d..8c851a4 100644
--- a/runtime/vm/log.h
+++ b/runtime/vm/log.h
@@ -26,7 +26,7 @@
class Log {
public:
- explicit Log(LogPrinter printer = OS::Print);
+ explicit Log(LogPrinter printer = OS::PrintErr);
~Log();
static Log* Current();
diff --git a/runtime/vm/log_test.cc b/runtime/vm/log_test.cc
index f17c4d9..49ce2ea 100644
--- a/runtime/vm/log_test.cc
+++ b/runtime/vm/log_test.cc
@@ -38,7 +38,7 @@
test_output_ = buffer;
// Also print to stdout to see the overall result.
- OS::Print("%s", test_output_);
+ OS::PrintErr("%s", test_output_);
}
class LogTestHelper : public AllStatic {
diff --git a/runtime/vm/megamorphic_cache_table.cc b/runtime/vm/megamorphic_cache_table.cc
index a8811c1..7d0c165 100644
--- a/runtime/vm/megamorphic_cache_table.cc
+++ b/runtime/vm/megamorphic_cache_table.cc
@@ -99,8 +99,8 @@
max_size = buckets.Length();
}
}
- OS::Print("%" Pd " megamorphic caches using %" Pd "KB.\n", table.Length(),
- size / 1024);
+ OS::PrintErr("%" Pd " megamorphic caches using %" Pd "KB.\n", table.Length(),
+ size / 1024);
intptr_t* probe_counts = new intptr_t[max_size];
intptr_t entry_count = 0;
@@ -141,9 +141,10 @@
intptr_t cumulative_entries = 0;
for (intptr_t i = 0; i <= max_probe_count; i++) {
cumulative_entries += probe_counts[i];
- OS::Print("Megamorphic probe %" Pd ": %" Pd " (%lf)\n", i, probe_counts[i],
- static_cast<double>(cumulative_entries) /
- static_cast<double>(entry_count));
+ OS::PrintErr("Megamorphic probe %" Pd ": %" Pd " (%lf)\n", i,
+ probe_counts[i],
+ static_cast<double>(cumulative_entries) /
+ static_cast<double>(entry_count));
}
delete[] probe_counts;
}
diff --git a/runtime/vm/message_handler.cc b/runtime/vm/message_handler.cc
index 1a1ca67..2bc806d 100644
--- a/runtime/vm/message_handler.cc
+++ b/runtime/vm/message_handler.cc
@@ -106,7 +106,7 @@
bool task_running;
MonitorLocker ml(&monitor_);
if (FLAG_trace_isolates) {
- OS::Print(
+ OS::PrintErr(
"[+] Starting message handler:\n"
"\thandler: %s\n",
name());
@@ -130,7 +130,7 @@
if (FLAG_trace_isolates) {
Isolate* source_isolate = Isolate::Current();
if (source_isolate) {
- OS::Print(
+ OS::PrintErr(
"[>] Posting message:\n"
"\tlen: %" Pd "\n\tsource: (%" Pd64
") %s\n\tdest: %s\n"
@@ -138,7 +138,7 @@
message->Size(), static_cast<int64_t>(source_isolate->main_port()),
source_isolate->name(), name(), message->dest_port());
} else {
- OS::Print(
+ OS::PrintErr(
"[>] Posting message:\n"
"\tlen: %" Pd
"\n\tsource: <native code>\n"
@@ -214,7 +214,7 @@
while (message != NULL) {
intptr_t message_len = message->Size();
if (FLAG_trace_isolates) {
- OS::Print(
+ OS::PrintErr(
"[<] Handling message:\n"
"\tlen: %" Pd
"\n"
@@ -235,7 +235,7 @@
message = NULL; // May be deleted by now.
ml->Enter();
if (FLAG_trace_isolates) {
- OS::Print(
+ OS::PrintErr(
"[.] Message handled (%s):\n"
"\tlen: %" Pd
"\n"
@@ -459,13 +459,13 @@
if (FLAG_trace_isolates) {
if (status != kOK && thread() != NULL) {
const Error& error = Error::Handle(thread()->sticky_error());
- OS::Print(
+ OS::PrintErr(
"[-] Stopping message handler (%s):\n"
"\thandler: %s\n"
"\terror: %s\n",
MessageStatusString(status), name(), error.ToCString());
} else {
- OS::Print(
+ OS::PrintErr(
"[-] Stopping message handler (%s):\n"
"\thandler: %s\n",
MessageStatusString(status), name());
@@ -534,7 +534,7 @@
void MessageHandler::ClosePort(Dart_Port port) {
MonitorLocker ml(&monitor_);
if (FLAG_trace_isolates) {
- OS::Print(
+ OS::PrintErr(
"[-] Closing port:\n"
"\thandler: %s\n"
"\tport: %" Pd64
@@ -547,7 +547,7 @@
void MessageHandler::CloseAllPorts() {
MonitorLocker ml(&monitor_);
if (FLAG_trace_isolates) {
- OS::Print(
+ OS::PrintErr(
"[-] Closing all ports:\n"
"\thandler: %s\n",
name());
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
index beb89ec..2428bab 100644
--- a/runtime/vm/object.cc
+++ b/runtime/vm/object.cc
@@ -9143,8 +9143,8 @@
token_objects_.Add(str_);
if (kPrintTokenObjects) {
int iid = Isolate::Current()->main_port() % 1024;
- OS::Print("%03x ident <%s -> %s>\n", iid, ident.ToCString(),
- str_.ToCString());
+ OS::PrintErr("%03x ident <%s -> %s>\n", iid, ident.ToCString(),
+ str_.ToCString());
}
}
WriteIndex(index);
@@ -12622,7 +12622,7 @@
func = GetFunction(all_libs, #class_name, #function_name); \
if (func.IsNull()) { \
has_errors = true; \
- OS::Print("Function not found %s.%s\n", #class_name, #function_name); \
+ OS::PrintErr("Function not found %s.%s\n", #class_name, #function_name); \
} else { \
CHECK_FINGERPRINT3(func, class_name, function_name, dest, fp); \
}
@@ -12662,7 +12662,7 @@
func = GetFunction(all_libs, #class_name, #factory_name); \
if (func.IsNull()) { \
has_errors = true; \
- OS::Print("Function not found %s.%s\n", #class_name, #factory_name); \
+ OS::PrintErr("Function not found %s.%s\n", #class_name, #factory_name); \
} else { \
CHECK_FINGERPRINT2(func, symbol, cid, fp); \
}
diff --git a/runtime/vm/object_test.cc b/runtime/vm/object_test.cc
index ed8d624..6686b52 100644
--- a/runtime/vm/object_test.cc
+++ b/runtime/vm/object_test.cc
@@ -150,8 +150,8 @@
type_arguments2.SetTypeAt(0, type1);
type_arguments2.SetTypeAt(1, type2);
EXPECT_NE(type_arguments1.raw(), type_arguments2.raw());
- OS::Print("1: %s\n", type_arguments1.ToCString());
- OS::Print("2: %s\n", type_arguments2.ToCString());
+ OS::PrintErr("1: %s\n", type_arguments1.ToCString());
+ OS::PrintErr("2: %s\n", type_arguments2.ToCString());
EXPECT(type_arguments1.Equals(type_arguments2));
TypeArguments& type_arguments3 = TypeArguments::Handle();
type_arguments1.Canonicalize();
@@ -3765,16 +3765,17 @@
static void PrintMetadata(const char* name, const Object& data) {
if (data.IsError()) {
- OS::Print("Error in metadata evaluation for %s: '%s'\n", name,
- Error::Cast(data).ToErrorCString());
+ OS::PrintErr("Error in metadata evaluation for %s: '%s'\n", name,
+ Error::Cast(data).ToErrorCString());
}
EXPECT(data.IsArray());
const Array& metadata = Array::Cast(data);
- OS::Print("Metadata for %s has %" Pd " values:\n", name, metadata.Length());
+ OS::PrintErr("Metadata for %s has %" Pd " values:\n", name,
+ metadata.Length());
Object& elem = Object::Handle();
for (int i = 0; i < metadata.Length(); i++) {
elem = metadata.At(i);
- OS::Print(" %d: %s\n", i, elem.ToCString());
+ OS::PrintErr(" %d: %s\n", i, elem.ToCString());
}
}
diff --git a/runtime/vm/os.h b/runtime/vm/os.h
index 94bb98d..dcee83d 100644
--- a/runtime/vm/os.h
+++ b/runtime/vm/os.h
@@ -92,6 +92,9 @@
static uintptr_t GetProgramCounter();
// Print formatted output to stdout/stderr for debugging.
+ // Tracing and debugging prints from the VM should strongly prefer to use
+ // PrintErr to avoid interfering with the application's output, which may
+ // be parsed by another program.
static void Print(const char* format, ...) PRINTF_ATTRIBUTE(1, 2);
static void PrintErr(const char* format, ...) PRINTF_ATTRIBUTE(1, 2);
static void VFPrint(FILE* stream, const char* format, va_list args);
diff --git a/runtime/vm/pages.cc b/runtime/vm/pages.cc
index 2beff46..288f8ff 100644
--- a/runtime/vm/pages.cc
+++ b/runtime/vm/pages.cc
@@ -806,7 +806,7 @@
if ((start - last_code_collection_in_us) >
FLAG_code_collection_interval_in_us) {
if (FLAG_log_code_drop) {
- OS::Print("Trying to detach code.\n");
+ OS::PrintErr("Trying to detach code.\n");
}
page_space_controller_.set_last_code_collection_in_us(start);
return true;
@@ -933,9 +933,9 @@
NoSafepointScope no_safepoints;
if (FLAG_print_free_list_before_gc) {
- OS::Print("Data Freelist (before GC):\n");
+ OS::PrintErr("Data Freelist (before GC):\n");
freelist_[HeapPage::kData].Print();
- OS::Print("Executable Freelist (before GC):\n");
+ OS::PrintErr("Executable Freelist (before GC):\n");
freelist_[HeapPage::kExecutable].Print();
}
@@ -1054,9 +1054,9 @@
heap_->RecordTime(kSweepLargePages, end - mid3);
if (FLAG_print_free_list_after_gc) {
- OS::Print("Data Freelist (after GC):\n");
+ OS::PrintErr("Data Freelist (after GC):\n");
freelist_[HeapPage::kData].Print();
- OS::Print("Executable Freelist (after GC):\n");
+ OS::PrintErr("Executable Freelist (after GC):\n");
freelist_[HeapPage::kExecutable].Print();
}
diff --git a/runtime/vm/parser.cc b/runtime/vm/parser.cc
index 08388da..c2090ec 100644
--- a/runtime/vm/parser.cc
+++ b/runtime/vm/parser.cc
@@ -83,8 +83,8 @@
intptr_t line, column;
script.GetTokenLocation(token_pos, &line, &column);
PrintIndent();
- OS::Print("%s (line %" Pd ", col %" Pd ", token %" Pd ")\n", msg, line,
- column, token_pos.value());
+ OS::PrintErr("%s (line %" Pd ", col %" Pd ", token %" Pd ")\n", msg,
+ line, column, token_pos.value());
}
(*indent_)++;
}
@@ -99,7 +99,7 @@
private:
void PrintIndent() {
for (intptr_t i = 0; i < *indent_; i++) {
- OS::Print(". ");
+ OS::PrintErr(". ");
}
}
intptr_t* indent_;
@@ -4766,7 +4766,7 @@
String* enum_name =
ExpectUserDefinedTypeIdentifier("enum type name expected");
if (FLAG_trace_parser) {
- OS::Print("TopLevel parsing enum '%s'\n", enum_name->ToCString());
+ OS::PrintErr("TopLevel parsing enum '%s'\n", enum_name->ToCString());
}
ExpectToken(Token::kLBRACE);
if (!IsIdentifier()) {
@@ -4823,7 +4823,7 @@
const TokenPosition classname_pos = TokenPos();
String& class_name = *ExpectUserDefinedTypeIdentifier("class name expected");
if (FLAG_trace_parser) {
- OS::Print("TopLevel parsing class '%s'\n", class_name.ToCString());
+ OS::PrintErr("TopLevel parsing class '%s'\n", class_name.ToCString());
}
Class& cls = Class::Handle(Z);
TypeArguments& orig_type_parameters = TypeArguments::Handle(Z);
@@ -5356,8 +5356,8 @@
const TokenPosition classname_pos = TokenPos();
String& class_name = *ExpectUserDefinedTypeIdentifier("class name expected");
if (FLAG_trace_parser) {
- OS::Print("toplevel parsing mixin application alias class '%s'\n",
- class_name.ToCString());
+ OS::PrintErr("toplevel parsing mixin application alias class '%s'\n",
+ class_name.ToCString());
}
const Object& obj = Object::Handle(Z, library_.LookupLocalObject(class_name));
if (!obj.IsNull()) {
@@ -5542,8 +5542,8 @@
Type::Cast(function_type).signature());
if (FLAG_trace_parser) {
- OS::Print("TopLevel parsing function type alias '%s'\n",
- String::Handle(Z, signature_function.Signature()).ToCString());
+ OS::PrintErr("TopLevel parsing function type alias '%s'\n",
+ String::Handle(Z, signature_function.Signature()).ToCString());
}
// The alias should not be marked as finalized yet, since it needs to be
// checked in the class finalizer for illegal self references.
diff --git a/runtime/vm/parser_test.cc b/runtime/vm/parser_test.cc
index bd06546..a04d599 100644
--- a/runtime/vm/parser_test.cc
+++ b/runtime/vm/parser_test.cc
@@ -42,7 +42,7 @@
AstPrinter ast_printer;
ast_printer.PrintFunctionNodes(*parsed_function);
} else {
- OS::Print("AST printer not supported.");
+ OS::PrintErr("AST printer not supported.");
}
retval = true;
} else {
diff --git a/runtime/vm/port.cc b/runtime/vm/port.cc
index 3bc0370..27ee26d 100644
--- a/runtime/vm/port.cc
+++ b/runtime/vm/port.cc
@@ -107,7 +107,7 @@
map_[index].handler->increment_live_ports();
}
if (FLAG_trace_isolates) {
- OS::Print(
+ OS::PrintErr(
"[^] Port (%s) -> (%s): \n"
"\thandler: %s\n"
"\tport: %" Pd64 "\n",
@@ -168,7 +168,7 @@
MaintainInvariants();
if (FLAG_trace_isolates) {
- OS::Print(
+ OS::PrintErr(
"[+] Opening port: \n"
"\thandler: %s\n"
"\tport: %" Pd64 "\n",
@@ -323,9 +323,9 @@
for (intptr_t i = 0; i < capacity_; i++) {
if (map_[i].handler == handler) {
if (map_[i].state == kLivePort) {
- OS::Print("Live Port = %" Pd64 "\n", map_[i].port);
+ OS::PrintErr("Live Port = %" Pd64 "\n", map_[i].port);
msg_handler = DartLibraryCalls::LookupHandler(map_[i].port);
- OS::Print("Handler = %s\n", msg_handler.ToCString());
+ OS::PrintErr("Handler = %s\n", msg_handler.ToCString());
}
}
}
diff --git a/runtime/vm/profiler.cc b/runtime/vm/profiler.cc
index 13ab5b0..7f424f3 100644
--- a/runtime/vm/profiler.cc
+++ b/runtime/vm/profiler.cc
@@ -154,9 +154,9 @@
cursor_ = 0;
if (FLAG_trace_profiler) {
- OS::Print("Profiler holds %" Pd " samples\n", capacity);
- OS::Print("Profiler sample is %" Pd " bytes\n", Sample::instance_size());
- OS::Print("Profiler memory usage = %" Pd " bytes\n", size);
+ OS::PrintErr("Profiler holds %" Pd " samples\n", capacity);
+ OS::PrintErr("Profiler sample is %" Pd " bytes\n", Sample::instance_size());
+ OS::PrintErr("Profiler memory usage = %" Pd " bytes\n", size);
}
}
diff --git a/runtime/vm/profiler_service.cc b/runtime/vm/profiler_service.cc
index 9cdfa47..286f2dd 100644
--- a/runtime/vm/profiler_service.cc
+++ b/runtime/vm/profiler_service.cc
@@ -49,7 +49,7 @@
if ((size_before > 0) && FLAG_trace_profiler) {
intptr_t length_before = previous_.Length();
intptr_t length_after = current_.Length();
- OS::Print(
+ OS::PrintErr(
"Updating isolate deoptimized code array: "
"%" Pd " -> %" Pd " [%" Pd " -> %" Pd "]\n",
size_before, size_after, length_before, length_after);
@@ -163,9 +163,9 @@
ProfileFunctionSourcePosition& position = source_position_ticks_[i];
if (position.token_pos().value() == token_position.value()) {
if (FLAG_trace_profiler_verbose) {
- OS::Print("Ticking source position %s %s\n",
- exclusive ? "exclusive" : "inclusive",
- token_position.ToCString());
+ OS::PrintErr("Ticking source position %s %s\n",
+ exclusive ? "exclusive" : "inclusive",
+ token_position.ToCString());
}
// Found existing position, tick it.
position.Tick(exclusive);
@@ -179,9 +179,9 @@
// Add new one, sorted by token position value.
ProfileFunctionSourcePosition pfsp(token_position);
if (FLAG_trace_profiler_verbose) {
- OS::Print("Ticking source position %s %s\n",
- exclusive ? "exclusive" : "inclusive",
- token_position.ToCString());
+ OS::PrintErr("Ticking source position %s %s\n",
+ exclusive ? "exclusive" : "inclusive",
+ token_position.ToCString());
}
pfsp.Tick(exclusive);
@@ -1027,8 +1027,8 @@
~ProfileCodeInlinedFunctionsCache() {
if (FLAG_trace_profiler) {
intptr_t total = cache_hit_ + cache_miss_;
- OS::Print("LOOKUPS: %" Pd " HITS: %" Pd " MISSES: %" Pd "\n", total,
- cache_hit_, cache_miss_);
+ OS::PrintErr("LOOKUPS: %" Pd " HITS: %" Pd " MISSES: %" Pd "\n", total,
+ cache_hit_, cache_miss_);
}
}
diff --git a/runtime/vm/raw_object.cc b/runtime/vm/raw_object.cc
index 31ae26e..cbe81d8 100644
--- a/runtime/vm/raw_object.cc
+++ b/runtime/vm/raw_object.cc
@@ -276,7 +276,7 @@
size = Size();
break;
default:
- OS::Print("Class Id: %" Pd "\n", class_id);
+ OS::PrintErr("Class Id: %" Pd "\n", class_id);
UNREACHABLE();
break;
}
diff --git a/runtime/vm/regexp.cc b/runtime/vm/regexp.cc
index 4d99e0f..909f00a 100644
--- a/runtime/vm/regexp.cc
+++ b/runtime/vm/regexp.cc
@@ -3471,23 +3471,23 @@
};
void DotPrinter::PrintNode(const char* label, RegExpNode* node) {
- OS::Print("digraph G {\n graph [label=\"");
+ OS::PrintErr("digraph G {\n graph [label=\"");
for (intptr_t i = 0; label[i]; i++) {
switch (label[i]) {
case '\\':
- OS::Print("\\\\");
+ OS::PrintErr("\\\\");
break;
case '"':
- OS::Print("\"");
+ OS::PrintErr("\"");
break;
default:
- OS::Print("%c", label[i]);
+ OS::PrintErr("%c", label[i]);
break;
}
}
- OS::Print("\"];\n");
+ OS::PrintErr("\"];\n");
Visit(node);
- OS::Print("}\n");
+ OS::PrintErr("}\n");
}
void DotPrinter::Visit(RegExpNode* node) {
@@ -3497,7 +3497,7 @@
}
void DotPrinter::PrintOnFailure(RegExpNode* from, RegExpNode* on_failure) {
- OS::Print(" n%p -> n%p [style=dotted];\n", from, on_failure);
+ OS::PrintErr(" n%p -> n%p [style=dotted];\n", from, on_failure);
Visit(on_failure);
}
@@ -3508,18 +3508,18 @@
if (first_) {
first_ = false;
} else {
- OS::Print("|");
+ OS::PrintErr("|");
}
}
void PrintBit(const char* name, bool value) {
if (!value) return;
PrintSeparator();
- OS::Print("{%s}", name);
+ OS::PrintErr("{%s}", name);
}
void PrintPositive(const char* name, intptr_t value) {
if (value < 0) return;
PrintSeparator();
- OS::Print("{%s|%" Pd "}", name, value);
+ OS::PrintErr("{%s|%" Pd "}", name, value);
}
private:
@@ -3527,7 +3527,7 @@
};
void DotPrinter::PrintAttributes(RegExpNode* that) {
- OS::Print(
+ OS::PrintErr(
" a%p [shape=Mrecord, color=grey, fontcolor=grey, "
"margin=0.1, fontsize=10, label=\"{",
that);
@@ -3538,17 +3538,17 @@
printer.PrintBit("SI", info->follows_start_interest);
BlockLabel* label = that->label();
if (label->IsBound()) printer.PrintPositive("@", label->Position());
- OS::Print(
+ OS::PrintErr(
"}\"];\n"
" a%p -> n%p [style=dashed, color=grey, arrowhead=none];\n",
that, that);
}
void DotPrinter::VisitChoice(ChoiceNode* that) {
- OS::Print(" n%p [shape=Mrecord, label=\"?\"];\n", that);
+ OS::PrintErr(" n%p [shape=Mrecord, label=\"?\"];\n", that);
for (intptr_t i = 0; i < that->alternatives()->length(); i++) {
GuardedAlternative alt = that->alternatives()->At(i);
- OS::Print(" n%p -> n%p", that, alt.node());
+ OS::PrintErr(" n%p -> n%p", that, alt.node());
}
for (intptr_t i = 0; i < that->alternatives()->length(); i++) {
GuardedAlternative alt = that->alternatives()->At(i);
@@ -3557,120 +3557,120 @@
}
void DotPrinter::VisitText(TextNode* that) {
- OS::Print(" n%p [label=\"", that);
+ OS::PrintErr(" n%p [label=\"", that);
for (intptr_t i = 0; i < that->elements()->length(); i++) {
- if (i > 0) OS::Print(" ");
+ if (i > 0) OS::PrintErr(" ");
TextElement elm = that->elements()->At(i);
switch (elm.text_type()) {
case TextElement::ATOM: {
ZoneGrowableArray<uint16_t>* data = elm.atom()->data();
for (intptr_t i = 0; i < data->length(); i++) {
- OS::Print("%c", static_cast<char>(data->At(i)));
+ OS::PrintErr("%c", static_cast<char>(data->At(i)));
}
break;
}
case TextElement::CHAR_CLASS: {
RegExpCharacterClass* node = elm.char_class();
- OS::Print("[");
- if (node->is_negated()) OS::Print("^");
+ OS::PrintErr("[");
+ if (node->is_negated()) OS::PrintErr("^");
for (intptr_t j = 0; j < node->ranges()->length(); j++) {
CharacterRange range = node->ranges()->At(j);
PrintUtf16(range.from());
- OS::Print("-");
+ OS::PrintErr("-");
PrintUtf16(range.to());
}
- OS::Print("]");
+ OS::PrintErr("]");
break;
}
default:
UNREACHABLE();
}
}
- OS::Print("\", shape=box, peripheries=2];\n");
+ OS::PrintErr("\", shape=box, peripheries=2];\n");
PrintAttributes(that);
- OS::Print(" n%p -> n%p;\n", that, that->on_success());
+ OS::PrintErr(" n%p -> n%p;\n", that, that->on_success());
Visit(that->on_success());
}
void DotPrinter::VisitBackReference(BackReferenceNode* that) {
- OS::Print(" n%p [label=\"$%" Pd "..$%" Pd "\", shape=doubleoctagon];\n",
- that, that->start_register(), that->end_register());
+ OS::PrintErr(" n%p [label=\"$%" Pd "..$%" Pd "\", shape=doubleoctagon];\n",
+ that, that->start_register(), that->end_register());
PrintAttributes(that);
- OS::Print(" n%p -> n%p;\n", that, that->on_success());
+ OS::PrintErr(" n%p -> n%p;\n", that, that->on_success());
Visit(that->on_success());
}
void DotPrinter::VisitEnd(EndNode* that) {
- OS::Print(" n%p [style=bold, shape=point];\n", that);
+ OS::PrintErr(" n%p [style=bold, shape=point];\n", that);
PrintAttributes(that);
}
void DotPrinter::VisitAssertion(AssertionNode* that) {
- OS::Print(" n%p [", that);
+ OS::PrintErr(" n%p [", that);
switch (that->assertion_type()) {
case AssertionNode::AT_END:
- OS::Print("label=\"$\", shape=septagon");
+ OS::PrintErr("label=\"$\", shape=septagon");
break;
case AssertionNode::AT_START:
- OS::Print("label=\"^\", shape=septagon");
+ OS::PrintErr("label=\"^\", shape=septagon");
break;
case AssertionNode::AT_BOUNDARY:
- OS::Print("label=\"\\b\", shape=septagon");
+ OS::PrintErr("label=\"\\b\", shape=septagon");
break;
case AssertionNode::AT_NON_BOUNDARY:
- OS::Print("label=\"\\B\", shape=septagon");
+ OS::PrintErr("label=\"\\B\", shape=septagon");
break;
case AssertionNode::AFTER_NEWLINE:
- OS::Print("label=\"(?<=\\n)\", shape=septagon");
+ OS::PrintErr("label=\"(?<=\\n)\", shape=septagon");
break;
}
- OS::Print("];\n");
+ OS::PrintErr("];\n");
PrintAttributes(that);
RegExpNode* successor = that->on_success();
- OS::Print(" n%p -> n%p;\n", that, successor);
+ OS::PrintErr(" n%p -> n%p;\n", that, successor);
Visit(successor);
}
void DotPrinter::VisitAction(ActionNode* that) {
- OS::Print(" n%p [", that);
+ OS::PrintErr(" n%p [", that);
switch (that->action_type_) {
case ActionNode::SET_REGISTER:
- OS::Print("label=\"$%" Pd ":=%" Pd "\", shape=octagon",
- that->data_.u_store_register.reg,
- that->data_.u_store_register.value);
+ OS::PrintErr("label=\"$%" Pd ":=%" Pd "\", shape=octagon",
+ that->data_.u_store_register.reg,
+ that->data_.u_store_register.value);
break;
case ActionNode::INCREMENT_REGISTER:
- OS::Print("label=\"$%" Pd "++\", shape=octagon",
- that->data_.u_increment_register.reg);
+ OS::PrintErr("label=\"$%" Pd "++\", shape=octagon",
+ that->data_.u_increment_register.reg);
break;
case ActionNode::STORE_POSITION:
- OS::Print("label=\"$%" Pd ":=$pos\", shape=octagon",
- that->data_.u_position_register.reg);
+ OS::PrintErr("label=\"$%" Pd ":=$pos\", shape=octagon",
+ that->data_.u_position_register.reg);
break;
case ActionNode::BEGIN_SUBMATCH:
- OS::Print("label=\"$%" Pd ":=$pos,begin\", shape=septagon",
- that->data_.u_submatch.current_position_register);
+ OS::PrintErr("label=\"$%" Pd ":=$pos,begin\", shape=septagon",
+ that->data_.u_submatch.current_position_register);
break;
case ActionNode::POSITIVE_SUBMATCH_SUCCESS:
- OS::Print("label=\"escape\", shape=septagon");
+ OS::PrintErr("label=\"escape\", shape=septagon");
break;
case ActionNode::EMPTY_MATCH_CHECK:
- OS::Print("label=\"$%" Pd "=$pos?,$%" Pd "<%" Pd "?\", shape=septagon",
- that->data_.u_empty_match_check.start_register,
- that->data_.u_empty_match_check.repetition_register,
- that->data_.u_empty_match_check.repetition_limit);
+ OS::PrintErr("label=\"$%" Pd "=$pos?,$%" Pd "<%" Pd "?\", shape=septagon",
+ that->data_.u_empty_match_check.start_register,
+ that->data_.u_empty_match_check.repetition_register,
+ that->data_.u_empty_match_check.repetition_limit);
break;
case ActionNode::CLEAR_CAPTURES: {
- OS::Print("label=\"clear $%" Pd " to $%" Pd "\", shape=septagon",
- that->data_.u_clear_captures.range_from,
- that->data_.u_clear_captures.range_to);
+ OS::PrintErr("label=\"clear $%" Pd " to $%" Pd "\", shape=septagon",
+ that->data_.u_clear_captures.range_from,
+ that->data_.u_clear_captures.range_to);
break;
}
}
- OS::Print("];\n");
+ OS::PrintErr("];\n");
PrintAttributes(that);
RegExpNode* successor = that->on_success();
- OS::Print(" n%p -> n%p;\n", that, successor);
+ OS::PrintErr(" n%p -> n%p;\n", that, successor);
Visit(successor);
}
diff --git a/runtime/vm/regexp_assembler.cc b/runtime/vm/regexp_assembler.cc
index f2570c5..ecd1914 100644
--- a/runtime/vm/regexp_assembler.cc
+++ b/runtime/vm/regexp_assembler.cc
@@ -13,7 +13,7 @@
void PrintUtf16(uint16_t c) {
const char* format =
(0x20 <= c && c <= 0x7F) ? "%c" : (c <= 0xff) ? "\\x%02x" : "\\u%04x";
- OS::Print(format, c);
+ OS::PrintErr(format, c);
}
diff --git a/runtime/vm/regexp_assembler_ir.cc b/runtime/vm/regexp_assembler_ir.cc
index 64753cb..72b4e93 100644
--- a/runtime/vm/regexp_assembler_ir.cc
+++ b/runtime/vm/regexp_assembler_ir.cc
@@ -323,7 +323,7 @@
Object::Handle(zone, DartEntry::InvokeFunction(fun, args));
if (retval.IsError()) {
const Error& error = Error::Cast(retval);
- OS::Print("%s\n", error.ToErrorCString());
+ OS::PrintErr("%s\n", error.ToErrorCString());
// Should never happen.
UNREACHABLE();
}
@@ -569,7 +569,7 @@
#define HANDLE_DEAD_CODE_EMISSION() \
if (current_instruction_ == NULL) { \
if (FLAG_trace_irregexp) { \
- OS::Print( \
+ OS::PrintErr( \
"WARNING: Attempting to append to a closed assembler. " \
"This could be either a bug or generation of dead code " \
"inherited from V8.\n"); \
diff --git a/runtime/vm/regexp_ast.cc b/runtime/vm/regexp_ast.cc
index 2edfe08..5b51a6f 100644
--- a/runtime/vm/regexp_ast.cc
+++ b/runtime/vm/regexp_ast.cc
@@ -134,76 +134,76 @@
};
void* RegExpUnparser::VisitDisjunction(RegExpDisjunction* that, void* data) {
- OS::Print("(|");
+ OS::PrintErr("(|");
for (intptr_t i = 0; i < that->alternatives()->length(); i++) {
- OS::Print(" ");
+ OS::PrintErr(" ");
(*that->alternatives())[i]->Accept(this, data);
}
- OS::Print(")");
+ OS::PrintErr(")");
return NULL;
}
void* RegExpUnparser::VisitAlternative(RegExpAlternative* that, void* data) {
- OS::Print("(:");
+ OS::PrintErr("(:");
for (intptr_t i = 0; i < that->nodes()->length(); i++) {
- OS::Print(" ");
+ OS::PrintErr(" ");
(*that->nodes())[i]->Accept(this, data);
}
- OS::Print(")");
+ OS::PrintErr(")");
return NULL;
}
void RegExpUnparser::VisitCharacterRange(CharacterRange that) {
PrintUtf16(that.from());
if (!that.IsSingleton()) {
- OS::Print("-");
+ OS::PrintErr("-");
PrintUtf16(that.to());
}
}
void* RegExpUnparser::VisitCharacterClass(RegExpCharacterClass* that,
void* data) {
- if (that->is_negated()) OS::Print("^");
- OS::Print("[");
+ if (that->is_negated()) OS::PrintErr("^");
+ OS::PrintErr("[");
for (intptr_t i = 0; i < that->ranges()->length(); i++) {
- if (i > 0) OS::Print(" ");
+ if (i > 0) OS::PrintErr(" ");
VisitCharacterRange((*that->ranges())[i]);
}
- OS::Print("]");
+ OS::PrintErr("]");
return NULL;
}
void* RegExpUnparser::VisitAssertion(RegExpAssertion* that, void* data) {
switch (that->assertion_type()) {
case RegExpAssertion::START_OF_INPUT:
- OS::Print("@^i");
+ OS::PrintErr("@^i");
break;
case RegExpAssertion::END_OF_INPUT:
- OS::Print("@$i");
+ OS::PrintErr("@$i");
break;
case RegExpAssertion::START_OF_LINE:
- OS::Print("@^l");
+ OS::PrintErr("@^l");
break;
case RegExpAssertion::END_OF_LINE:
- OS::Print("@$l");
+ OS::PrintErr("@$l");
break;
case RegExpAssertion::BOUNDARY:
- OS::Print("@b");
+ OS::PrintErr("@b");
break;
case RegExpAssertion::NON_BOUNDARY:
- OS::Print("@B");
+ OS::PrintErr("@B");
break;
}
return NULL;
}
void* RegExpUnparser::VisitAtom(RegExpAtom* that, void* data) {
- OS::Print("'");
+ OS::PrintErr("'");
ZoneGrowableArray<uint16_t>* chardata = that->data();
for (intptr_t i = 0; i < chardata->length(); i++) {
PrintUtf16(chardata->At(i));
}
- OS::Print("'");
+ OS::PrintErr("'");
return NULL;
}
@@ -211,50 +211,50 @@
if (that->elements()->length() == 1) {
(*that->elements())[0].tree()->Accept(this, data);
} else {
- OS::Print("(!");
+ OS::PrintErr("(!");
for (intptr_t i = 0; i < that->elements()->length(); i++) {
- OS::Print(" ");
+ OS::PrintErr(" ");
(*that->elements())[i].tree()->Accept(this, data);
}
- OS::Print(")");
+ OS::PrintErr(")");
}
return NULL;
}
void* RegExpUnparser::VisitQuantifier(RegExpQuantifier* that, void* data) {
- OS::Print("(# %" Pd " ", that->min());
+ OS::PrintErr("(# %" Pd " ", that->min());
if (that->max() == RegExpTree::kInfinity) {
- OS::Print("- ");
+ OS::PrintErr("- ");
} else {
- OS::Print("%" Pd " ", that->max());
+ OS::PrintErr("%" Pd " ", that->max());
}
- OS::Print(that->is_greedy() ? "g " : that->is_possessive() ? "p " : "n ");
+ OS::PrintErr(that->is_greedy() ? "g " : that->is_possessive() ? "p " : "n ");
that->body()->Accept(this, data);
- OS::Print(")");
+ OS::PrintErr(")");
return NULL;
}
void* RegExpUnparser::VisitCapture(RegExpCapture* that, void* data) {
- OS::Print("(^ ");
+ OS::PrintErr("(^ ");
that->body()->Accept(this, data);
- OS::Print(")");
+ OS::PrintErr(")");
return NULL;
}
void* RegExpUnparser::VisitLookahead(RegExpLookahead* that, void* data) {
- OS::Print("(-> %s", (that->is_positive() ? "+ " : "- "));
+ OS::PrintErr("(-> %s", (that->is_positive() ? "+ " : "- "));
that->body()->Accept(this, data);
- OS::Print(")");
+ OS::PrintErr(")");
return NULL;
}
void* RegExpUnparser::VisitBackReference(RegExpBackReference* that, void*) {
- OS::Print("(<- %" Pd ")", that->index());
+ OS::PrintErr("(<- %" Pd ")", that->index());
return NULL;
}
void* RegExpUnparser::VisitEmpty(RegExpEmpty*, void*) {
- OS::Print("%%");
+ OS::PrintErr("%%");
return NULL;
}
diff --git a/runtime/vm/regexp_interpreter.cc b/runtime/vm/regexp_interpreter.cc
index 27cc976..8b960b0 100644
--- a/runtime/vm/regexp_interpreter.cc
+++ b/runtime/vm/regexp_interpreter.cc
@@ -84,21 +84,21 @@
printable
? "pc = %02x, sp = %d, curpos = %d, curchar = %08x (%c), bc = %s"
: "pc = %02x, sp = %d, curpos = %d, curchar = %08x .%c., bc = %s";
- OS::Print(format, pc - code_base, stack_depth, current_position,
- current_char, printable ? current_char : '.', bytecode_name);
+ OS::PrintErr(format, pc - code_base, stack_depth, current_position,
+ current_char, printable ? current_char : '.', bytecode_name);
for (int i = 0; i < bytecode_length; i++) {
- OS::Print(", %02x", pc[i]);
+ OS::PrintErr(", %02x", pc[i]);
}
- OS::Print(" ");
+ OS::PrintErr(" ");
for (int i = 1; i < bytecode_length; i++) {
unsigned char b = pc[i];
if (b < 127 && b >= 32) {
- OS::Print("%c", b);
+ OS::PrintErr("%c", b);
} else {
- OS::Print(".");
+ OS::PrintErr(".");
}
}
- OS::Print("\n");
+ OS::PrintErr("\n");
}
}
@@ -167,7 +167,7 @@
#ifdef DEBUG
if (FLAG_trace_regexp_bytecodes) {
- OS::Print("Start irregexp bytecode interpreter\n");
+ OS::PrintErr("Start irregexp bytecode interpreter\n");
}
#endif
while (true) {
diff --git a/runtime/vm/report.cc b/runtime/vm/report.cc
index 4b45c37..ac3989d 100644
--- a/runtime/vm/report.cc
+++ b/runtime/vm/report.cc
@@ -154,7 +154,7 @@
const String& msg = String::Handle(String::NewFormattedV(format, args));
const String& snippet_msg = String::Handle(
PrependSnippet(kind, script, token_pos, report_after_token, msg));
- OS::Print("%s", snippet_msg.ToCString());
+ OS::PrintErr("%s", snippet_msg.ToCString());
return;
}
}
diff --git a/runtime/vm/runtime_entry.cc b/runtime/vm/runtime_entry.cc
index ede255c..a99794c 100644
--- a/runtime/vm/runtime_entry.cc
+++ b/runtime/vm/runtime_entry.cc
@@ -486,7 +486,7 @@
String::Handle(instantiated_type.Name()).ToCString(),
String::Handle(type.Name()).ToCString(), caller_frame->pc());
if (!bound_error.IsNull()) {
- OS::Print(" bound error: %s\n", bound_error.ToErrorCString());
+ OS::PrintErr(" bound error: %s\n", bound_error.ToErrorCString());
}
}
const Function& function =
@@ -513,13 +513,13 @@
// inlined assembly.
if (new_cache.IsNull()) {
if (FLAG_trace_type_checks) {
- OS::Print("UpdateTypeTestCache: cache is null\n");
+ OS::PrintErr("UpdateTypeTestCache: cache is null\n");
}
return;
}
if (instance.IsSmi()) {
if (FLAG_trace_type_checks) {
- OS::Print("UpdateTypeTestCache: instance is Smi\n");
+ OS::PrintErr("UpdateTypeTestCache: instance is Smi\n");
}
return;
}
@@ -540,7 +540,7 @@
if (Closure::Cast(instance).function_type_arguments() !=
TypeArguments::null()) {
if (FLAG_trace_type_checks) {
- OS::Print(
+ OS::PrintErr(
"UpdateTypeTestCache: closure function_type_arguments is "
"not null\n");
}
@@ -1906,9 +1906,9 @@
Code::Handle(function.unoptimized_code()).GetDeoptIdForOsr(frame->pc());
ASSERT(osr_id != Compiler::kNoOSRDeoptId);
if (FLAG_trace_osr) {
- OS::Print("Attempting OSR for %s at id=%" Pd ", count=%" Pd "\n",
- function.ToFullyQualifiedCString(), osr_id,
- function.usage_counter());
+ OS::PrintErr("Attempting OSR for %s at id=%" Pd ", count=%" Pd "\n",
+ function.ToFullyQualifiedCString(), osr_id,
+ function.usage_counter());
}
// Since the code is referenced from the frame and the ZoneHandle,
@@ -2482,7 +2482,7 @@
// Print the stop message.
DEFINE_LEAF_RUNTIME_ENTRY(void, PrintStopMessage, 1, const char* message) {
- OS::Print("Stop message: %s\n", message);
+ OS::PrintErr("Stop message: %s\n", message);
}
END_LEAF_RUNTIME_ENTRY
diff --git a/runtime/vm/safepoint.cc b/runtime/vm/safepoint.cc
index 09c5646..4fb88a4 100644
--- a/runtime/vm/safepoint.cc
+++ b/runtime/vm/safepoint.cc
@@ -110,8 +110,8 @@
if (num_attempts > 10) {
// We have been waiting too long, start logging this as we might
// have an issue where a thread is not checking in for a safepoint.
- OS::Print("Attempt:%" Pd " waiting for %d threads to check in\n",
- num_attempts, number_threads_not_at_safepoint_);
+ OS::PrintErr("Attempt:%" Pd " waiting for %d threads to check in\n",
+ num_attempts, number_threads_not_at_safepoint_);
}
}
}
diff --git a/runtime/vm/scanner_test.cc b/runtime/vm/scanner_test.cc
index 38ffc86..93fa232 100644
--- a/runtime/vm/scanner_test.cc
+++ b/runtime/vm/scanner_test.cc
@@ -13,13 +13,13 @@
typedef ZoneGrowableArray<Scanner::TokenDescriptor> GrowableTokenStream;
static void LogTokenDesc(Scanner::TokenDescriptor token) {
- OS::Print("pos %2d:%d-%d token %s ", token.position.line,
- token.position.column, token.position.column,
- Token::Name(token.kind));
+ OS::PrintErr("pos %2d:%d-%d token %s ", token.position.line,
+ token.position.column, token.position.column,
+ Token::Name(token.kind));
if (token.literal != NULL) {
- OS::Print("%s", token.literal->ToCString());
+ OS::PrintErr("%s", token.literal->ToCString());
}
- OS::Print("\n");
+ OS::PrintErr("\n");
}
static void LogTokenStream(const GrowableTokenStream& token_stream) {
@@ -100,7 +100,7 @@
};
static const GrowableTokenStream& Scan(const char* source) {
- OS::Print("\nScanning: <%s>\n", source);
+ OS::PrintErr("\nScanning: <%s>\n", source);
Scanner scanner(String::Handle(String::New(source)),
String::Handle(String::New("")));
diff --git a/runtime/vm/scope_timer.h b/runtime/vm/scope_timer.h
index c895225..c910e34 100644
--- a/runtime/vm/scope_timer.h
+++ b/runtime/vm/scope_timer.h
@@ -32,7 +32,8 @@
}
int64_t elapsed = GetElapsed();
double seconds = MicrosecondsToSeconds(elapsed);
- OS::Print("%s: %f seconds (%" Pd64 " \u00B5s)\n", name_, seconds, elapsed);
+ OS::PrintErr("%s: %f seconds (%" Pd64 " \u00B5s)\n", name_, seconds,
+ elapsed);
}
private:
diff --git a/runtime/vm/simulator_arm.cc b/runtime/vm/simulator_arm.cc
index 3415481..f61af66 100644
--- a/runtime/vm/simulator_arm.cc
+++ b/runtime/vm/simulator_arm.cc
@@ -122,7 +122,7 @@
SimulatorDebugger::~SimulatorDebugger() {}
void SimulatorDebugger::Stop(Instr* instr, const char* message) {
- OS::Print("Simulator hit %s\n", message);
+ OS::PrintErr("Simulator hit %s\n", message);
Debug();
}
@@ -258,7 +258,7 @@
if (token_pos.IsReal()) {
script.GetTokenLocation(token_pos, &line, &column);
}
- OS::Print(
+ OS::PrintErr(
"pc=0x%" Px " fp=0x%" Px " sp=0x%" Px " %s%s (%s:%" Pd ":%" Pd ")\n", pc,
fp, sp, is_optimized ? (is_inlined ? "inlined " : "optimized ") : "",
func_name.ToCString(), url.ToCString(), line, column);
@@ -303,13 +303,13 @@
GetApproximateTokenIndex(code, frame->pc()),
code.is_optimized(), false);
} else {
- OS::Print("pc=0x%" Px " fp=0x%" Px " sp=0x%" Px " %s frame\n",
- frame->pc(), frame->fp(), frame->sp(),
- frame->IsEntryFrame()
- ? "entry"
- : frame->IsExitFrame()
- ? "exit"
- : frame->IsStubFrame() ? "stub" : "invalid");
+ OS::PrintErr("pc=0x%" Px " fp=0x%" Px " sp=0x%" Px " %s frame\n",
+ frame->pc(), frame->fp(), frame->sp(),
+ frame->IsEntryFrame()
+ ? "entry"
+ : frame->IsExitFrame()
+ ? "exit"
+ : frame->IsStubFrame() ? "stub" : "invalid");
}
frame = frames.NextFrame();
}
@@ -378,12 +378,12 @@
if (last_pc != sim_->get_pc()) {
last_pc = sim_->get_pc();
if (Simulator::IsIllegalAddress(last_pc)) {
- OS::Print("pc is out of bounds: 0x%" Px "\n", last_pc);
+ OS::PrintErr("pc is out of bounds: 0x%" Px "\n", last_pc);
} else {
if (FLAG_support_disassembler) {
Disassembler::Disassemble(last_pc, last_pc + Instr::kInstrSize);
} else {
- OS::Print("Disassembler not supported in this mode.\n");
+ OS::PrintErr("Disassembler not supported in this mode.\n");
}
}
}
@@ -399,7 +399,7 @@
"%" XSTR(ARG_SIZE) "s",
cmd, arg1, arg2);
if ((strcmp(cmd, "h") == 0) || (strcmp(cmd, "help") == 0)) {
- OS::Print(
+ OS::PrintErr(
"c/cont -- continue execution\n"
"disasm -- disassemble instrs at current pc location\n"
" other variants are:\n"
@@ -421,7 +421,7 @@
"unstop -- if current pc is a stop instr make it a nop\n"
"q/quit -- Quit the debugger and exit the program\n");
} else if ((strcmp(cmd, "quit") == 0) || (strcmp(cmd, "q") == 0)) {
- OS::Print("Quitting\n");
+ OS::PrintErr("Quitting\n");
OS::Exit(0);
} else if ((strcmp(cmd, "si") == 0) || (strcmp(cmd, "stepi") == 0)) {
sim_->InstructionDecode(reinterpret_cast<Instr*>(sim_->get_pc()));
@@ -435,14 +435,14 @@
uint32_t value;
if (strcmp(arg1, "icount") == 0) {
const uint64_t icount = sim_->get_icount();
- OS::Print("icount: %" Pu64 " 0x%" Px64 "\n", icount, icount);
+ OS::PrintErr("icount: %" Pu64 " 0x%" Px64 "\n", icount, icount);
} else if (GetValue(arg1, &value)) {
- OS::Print("%s: %u 0x%x\n", arg1, value, value);
+ OS::PrintErr("%s: %u 0x%x\n", arg1, value, value);
} else {
- OS::Print("%s unrecognized\n", arg1);
+ OS::PrintErr("%s unrecognized\n", arg1);
}
} else {
- OS::Print("print <reg or icount or value or *addr>\n");
+ OS::PrintErr("print <reg or icount or value or *addr>\n");
}
} else if ((strcmp(cmd, "ps") == 0) ||
(strcmp(cmd, "printsingle") == 0)) {
@@ -450,12 +450,12 @@
float fvalue;
if (GetFValue(arg1, &fvalue)) {
uint32_t value = bit_cast<uint32_t, float>(fvalue);
- OS::Print("%s: 0%u 0x%x %.8g\n", arg1, value, value, fvalue);
+ OS::PrintErr("%s: 0%u 0x%x %.8g\n", arg1, value, value, fvalue);
} else {
- OS::Print("%s unrecognized\n", arg1);
+ OS::PrintErr("%s unrecognized\n", arg1);
}
} else {
- OS::Print("printfloat <sreg or *addr>\n");
+ OS::PrintErr("printfloat <sreg or *addr>\n");
}
} else if ((strcmp(cmd, "pd") == 0) ||
(strcmp(cmd, "printdouble") == 0)) {
@@ -463,13 +463,13 @@
double dvalue;
if (GetDValue(arg1, &dvalue)) {
uint64_t long_value = bit_cast<uint64_t, double>(dvalue);
- OS::Print("%s: %llu 0x%llx %.8g\n", arg1, long_value, long_value,
- dvalue);
+ OS::PrintErr("%s: %llu 0x%llx %.8g\n", arg1, long_value, long_value,
+ dvalue);
} else {
- OS::Print("%s unrecognized\n", arg1);
+ OS::PrintErr("%s unrecognized\n", arg1);
}
} else {
- OS::Print("printdouble <dreg or *addr>\n");
+ OS::PrintErr("printdouble <dreg or *addr>\n");
}
} else if ((strcmp(cmd, "po") == 0) ||
(strcmp(cmd, "printobject") == 0)) {
@@ -479,20 +479,20 @@
if (((arg1[0] == '*') && GetValue(arg1 + 1, &value)) ||
GetValue(arg1, &value)) {
if (Isolate::Current()->heap()->Contains(value)) {
- OS::Print("%s: \n", arg1);
+ OS::PrintErr("%s: \n", arg1);
#if defined(DEBUG)
const Object& obj =
Object::Handle(reinterpret_cast<RawObject*>(value));
obj.Print();
#endif // defined(DEBUG)
} else {
- OS::Print("0x%x is not an object reference\n", value);
+ OS::PrintErr("0x%x is not an object reference\n", value);
}
} else {
- OS::Print("%s unrecognized\n", arg1);
+ OS::PrintErr("%s unrecognized\n", arg1);
}
} else {
- OS::Print("printobject <*reg or *addr>\n");
+ OS::PrintErr("printobject <*reg or *addr>\n");
}
} else if (strcmp(cmd, "disasm") == 0) {
uint32_t start = 0;
@@ -505,8 +505,9 @@
// No length parameter passed, assume 10 instructions.
if (Simulator::IsIllegalAddress(start)) {
// If start isn't a valid address, warn and use PC instead.
- OS::Print("First argument yields invalid address: 0x%x\n", start);
- OS::Print("Using PC instead\n");
+ OS::PrintErr("First argument yields invalid address: 0x%x\n",
+ start);
+ OS::PrintErr("Using PC instead\n");
start = sim_->get_pc();
}
end = start + (10 * Instr::kInstrSize);
@@ -516,8 +517,9 @@
if (GetValue(arg1, &start) && GetValue(arg2, &length)) {
if (Simulator::IsIllegalAddress(start)) {
// If start isn't a valid address, warn and use PC instead.
- OS::Print("First argument yields invalid address: 0x%x\n", start);
- OS::Print("Using PC instead\n");
+ OS::PrintErr("First argument yields invalid address: 0x%x\n",
+ start);
+ OS::PrintErr("Using PC instead\n");
start = sim_->get_pc();
}
end = start + (length * Instr::kInstrSize);
@@ -527,63 +529,63 @@
if (FLAG_support_disassembler) {
Disassembler::Disassemble(start, end);
} else {
- OS::Print("Disassembler not supported in this mode.\n");
+ OS::PrintErr("Disassembler not supported in this mode.\n");
}
} else {
- OS::Print("disasm [<address> [<number_of_instructions>]]\n");
+ OS::PrintErr("disasm [<address> [<number_of_instructions>]]\n");
}
} else if (strcmp(cmd, "gdb") == 0) {
- OS::Print("relinquishing control to gdb\n");
+ OS::PrintErr("relinquishing control to gdb\n");
OS::DebugBreak();
- OS::Print("regaining control from gdb\n");
+ OS::PrintErr("regaining control from gdb\n");
} else if (strcmp(cmd, "break") == 0) {
if (args == 2) {
uint32_t addr;
if (GetValue(arg1, &addr)) {
if (!SetBreakpoint(reinterpret_cast<Instr*>(addr))) {
- OS::Print("setting breakpoint failed\n");
+ OS::PrintErr("setting breakpoint failed\n");
}
} else {
- OS::Print("%s unrecognized\n", arg1);
+ OS::PrintErr("%s unrecognized\n", arg1);
}
} else {
- OS::Print("break <addr>\n");
+ OS::PrintErr("break <addr>\n");
}
} else if (strcmp(cmd, "del") == 0) {
if (!DeleteBreakpoint(NULL)) {
- OS::Print("deleting breakpoint failed\n");
+ OS::PrintErr("deleting breakpoint failed\n");
}
} else if (strcmp(cmd, "flags") == 0) {
- OS::Print("APSR: ");
- OS::Print("N flag: %d; ", sim_->n_flag_);
- OS::Print("Z flag: %d; ", sim_->z_flag_);
- OS::Print("C flag: %d; ", sim_->c_flag_);
- OS::Print("V flag: %d\n", sim_->v_flag_);
- OS::Print("FPSCR: ");
- OS::Print("N flag: %d; ", sim_->fp_n_flag_);
- OS::Print("Z flag: %d; ", sim_->fp_z_flag_);
- OS::Print("C flag: %d; ", sim_->fp_c_flag_);
- OS::Print("V flag: %d\n", sim_->fp_v_flag_);
+ OS::PrintErr("APSR: ");
+ OS::PrintErr("N flag: %d; ", sim_->n_flag_);
+ OS::PrintErr("Z flag: %d; ", sim_->z_flag_);
+ OS::PrintErr("C flag: %d; ", sim_->c_flag_);
+ OS::PrintErr("V flag: %d\n", sim_->v_flag_);
+ OS::PrintErr("FPSCR: ");
+ OS::PrintErr("N flag: %d; ", sim_->fp_n_flag_);
+ OS::PrintErr("Z flag: %d; ", sim_->fp_z_flag_);
+ OS::PrintErr("C flag: %d; ", sim_->fp_c_flag_);
+ OS::PrintErr("V flag: %d\n", sim_->fp_v_flag_);
} else if (strcmp(cmd, "unstop") == 0) {
intptr_t stop_pc = sim_->get_pc() - Instr::kInstrSize;
Instr* stop_instr = reinterpret_cast<Instr*>(stop_pc);
if (stop_instr->IsSvc() || stop_instr->IsBkpt()) {
stop_instr->SetInstructionBits(Instr::kNopInstruction);
} else {
- OS::Print("Not at debugger stop.\n");
+ OS::PrintErr("Not at debugger stop.\n");
}
} else if (strcmp(cmd, "trace") == 0) {
if (FLAG_trace_sim_after == ULLONG_MAX) {
FLAG_trace_sim_after = sim_->get_icount();
- OS::Print("execution tracing on\n");
+ OS::PrintErr("execution tracing on\n");
} else {
FLAG_trace_sim_after = ULLONG_MAX;
- OS::Print("execution tracing off\n");
+ OS::PrintErr("execution tracing off\n");
}
} else if (strcmp(cmd, "bt") == 0) {
PrintBacktrace();
} else {
- OS::Print("Unknown command: %s\n", cmd);
+ OS::PrintErr("Unknown command: %s\n", cmd);
}
}
delete[] line;
@@ -605,7 +607,7 @@
char line_buf[256];
intptr_t offset = 0;
bool keep_going = true;
- OS::Print("%s", prompt);
+ OS::PrintErr("%s", prompt);
while (keep_going) {
if (fgets(line_buf, sizeof(line_buf), stdin) == NULL) {
// fgets got an error. Just give up.
@@ -1059,8 +1061,8 @@
// Unsupported instructions use Format to print an error and stop execution.
void Simulator::Format(Instr* instr, const char* format) {
- OS::Print("Simulator found unsupported instruction:\n 0x%p: %s\n", instr,
- format);
+ OS::PrintErr("Simulator found unsupported instruction:\n 0x%p: %s\n", instr,
+ format);
UNIMPLEMENTED();
}
diff --git a/runtime/vm/simulator_arm64.cc b/runtime/vm/simulator_arm64.cc
index 020321c..51ac7bb 100644
--- a/runtime/vm/simulator_arm64.cc
+++ b/runtime/vm/simulator_arm64.cc
@@ -122,7 +122,7 @@
SimulatorDebugger::~SimulatorDebugger() {}
void SimulatorDebugger::Stop(Instr* instr, const char* message) {
- OS::Print("Simulator hit %s\n", message);
+ OS::PrintErr("Simulator hit %s\n", message);
Debug();
}
@@ -280,7 +280,7 @@
if (token_pos.IsReal()) {
script.GetTokenLocation(token_pos, &line, &column);
}
- OS::Print(
+ OS::PrintErr(
"pc=0x%" Px " fp=0x%" Px " sp=0x%" Px " %s%s (%s:%" Pd ":%" Pd ")\n", pc,
fp, sp, is_optimized ? (is_inlined ? "inlined " : "optimized ") : "",
func_name.ToCString(), url.ToCString(), line, column);
@@ -325,13 +325,13 @@
GetApproximateTokenIndex(code, frame->pc()),
code.is_optimized(), false);
} else {
- OS::Print("pc=0x%" Px " fp=0x%" Px " sp=0x%" Px " %s frame\n",
- frame->pc(), frame->fp(), frame->sp(),
- frame->IsEntryFrame()
- ? "entry"
- : frame->IsExitFrame()
- ? "exit"
- : frame->IsStubFrame() ? "stub" : "invalid");
+ OS::PrintErr("pc=0x%" Px " fp=0x%" Px " sp=0x%" Px " %s frame\n",
+ frame->pc(), frame->fp(), frame->sp(),
+ frame->IsEntryFrame()
+ ? "entry"
+ : frame->IsExitFrame()
+ ? "exit"
+ : frame->IsStubFrame() ? "stub" : "invalid");
}
frame = frames.NextFrame();
}
@@ -400,12 +400,12 @@
if (last_pc != sim_->get_pc()) {
last_pc = sim_->get_pc();
if (Simulator::IsIllegalAddress(last_pc)) {
- OS::Print("pc is out of bounds: 0x%" Px "\n", last_pc);
+ OS::PrintErr("pc is out of bounds: 0x%" Px "\n", last_pc);
} else {
if (FLAG_support_disassembler) {
Disassembler::Disassemble(last_pc, last_pc + Instr::kInstrSize);
} else {
- OS::Print("Disassembler not supported in this mode.\n");
+ OS::PrintErr("Disassembler not supported in this mode.\n");
}
}
}
@@ -421,7 +421,7 @@
"%" XSTR(ARG_SIZE) "s",
cmd, arg1, arg2);
if ((strcmp(cmd, "h") == 0) || (strcmp(cmd, "help") == 0)) {
- OS::Print(
+ OS::PrintErr(
"c/cont -- continue execution\n"
"disasm -- disassemble instrs at current pc location\n"
" other variants are:\n"
@@ -444,7 +444,7 @@
"unstop -- if current pc is a stop instr make it a nop\n"
"q/quit -- Quit the debugger and exit the program\n");
} else if ((strcmp(cmd, "quit") == 0) || (strcmp(cmd, "q") == 0)) {
- OS::Print("Quitting\n");
+ OS::PrintErr("Quitting\n");
OS::Exit(0);
} else if ((strcmp(cmd, "si") == 0) || (strcmp(cmd, "stepi") == 0)) {
sim_->InstructionDecode(reinterpret_cast<Instr*>(sim_->get_pc()));
@@ -458,26 +458,26 @@
uint64_t value;
if (strcmp(arg1, "icount") == 0) {
value = sim_->get_icount();
- OS::Print("icount: %" Pu64 " 0x%" Px64 "\n", value, value);
+ OS::PrintErr("icount: %" Pu64 " 0x%" Px64 "\n", value, value);
} else if (GetValue(arg1, &value)) {
- OS::Print("%s: %" Pu64 " 0x%" Px64 "\n", arg1, value, value);
+ OS::PrintErr("%s: %" Pu64 " 0x%" Px64 "\n", arg1, value, value);
} else {
- OS::Print("%s unrecognized\n", arg1);
+ OS::PrintErr("%s unrecognized\n", arg1);
}
} else {
- OS::Print("print <reg or icount or value or *addr>\n");
+ OS::PrintErr("print <reg or icount or value or *addr>\n");
}
} else if ((strcmp(cmd, "pf") == 0) || (strcmp(cmd, "printfloat") == 0)) {
if (args == 2) {
uint32_t value;
if (GetSValue(arg1, &value)) {
float svalue = bit_cast<float, uint32_t>(value);
- OS::Print("%s: %d 0x%x %.8g\n", arg1, value, value, svalue);
+ OS::PrintErr("%s: %d 0x%x %.8g\n", arg1, value, value, svalue);
} else {
- OS::Print("%s unrecognized\n", arg1);
+ OS::PrintErr("%s unrecognized\n", arg1);
}
} else {
- OS::Print("printfloat <vreg or *addr>\n");
+ OS::PrintErr("printfloat <vreg or *addr>\n");
}
} else if ((strcmp(cmd, "pd") == 0) ||
(strcmp(cmd, "printdouble") == 0)) {
@@ -485,13 +485,13 @@
uint64_t long_value;
if (GetDValue(arg1, &long_value)) {
double dvalue = bit_cast<double, uint64_t>(long_value);
- OS::Print("%s: %" Pu64 " 0x%" Px64 " %.8g\n", arg1, long_value,
- long_value, dvalue);
+ OS::PrintErr("%s: %" Pu64 " 0x%" Px64 " %.8g\n", arg1, long_value,
+ long_value, dvalue);
} else {
- OS::Print("%s unrecognized\n", arg1);
+ OS::PrintErr("%s unrecognized\n", arg1);
}
} else {
- OS::Print("printdouble <vreg or *addr>\n");
+ OS::PrintErr("printdouble <vreg or *addr>\n");
}
} else if ((strcmp(cmd, "pq") == 0) || (strcmp(cmd, "printquad") == 0)) {
if (args == 2) {
@@ -509,17 +509,19 @@
const float sval1 = bit_cast<float, int32_t>(s1);
const float sval2 = bit_cast<float, int32_t>(s2);
const float sval3 = bit_cast<float, int32_t>(s3);
- OS::Print("%s: %" Pu64 " 0x%" Px64 " %.8g\n", arg1, d0, d0, dval0);
- OS::Print("%s: %" Pu64 " 0x%" Px64 " %.8g\n", arg1, d1, d1, dval1);
- OS::Print("%s: %d 0x%x %.8g\n", arg1, s0, s0, sval0);
- OS::Print("%s: %d 0x%x %.8g\n", arg1, s1, s1, sval1);
- OS::Print("%s: %d 0x%x %.8g\n", arg1, s2, s2, sval2);
- OS::Print("%s: %d 0x%x %.8g\n", arg1, s3, s3, sval3);
+ OS::PrintErr("%s: %" Pu64 " 0x%" Px64 " %.8g\n", arg1, d0, d0,
+ dval0);
+ OS::PrintErr("%s: %" Pu64 " 0x%" Px64 " %.8g\n", arg1, d1, d1,
+ dval1);
+ OS::PrintErr("%s: %d 0x%x %.8g\n", arg1, s0, s0, sval0);
+ OS::PrintErr("%s: %d 0x%x %.8g\n", arg1, s1, s1, sval1);
+ OS::PrintErr("%s: %d 0x%x %.8g\n", arg1, s2, s2, sval2);
+ OS::PrintErr("%s: %d 0x%x %.8g\n", arg1, s3, s3, sval3);
} else {
- OS::Print("%s unrecognized\n", arg1);
+ OS::PrintErr("%s unrecognized\n", arg1);
}
} else {
- OS::Print("printquad <vreg or *addr>\n");
+ OS::PrintErr("printquad <vreg or *addr>\n");
}
} else if ((strcmp(cmd, "po") == 0) ||
(strcmp(cmd, "printobject") == 0)) {
@@ -529,20 +531,20 @@
if (((arg1[0] == '*') && GetValue(arg1 + 1, &value)) ||
GetValue(arg1, &value)) {
if (Isolate::Current()->heap()->Contains(value)) {
- OS::Print("%s: \n", arg1);
+ OS::PrintErr("%s: \n", arg1);
#if defined(DEBUG)
const Object& obj =
Object::Handle(reinterpret_cast<RawObject*>(value));
obj.Print();
#endif // defined(DEBUG)
} else {
- OS::Print("0x%" Px64 " is not an object reference\n", value);
+ OS::PrintErr("0x%" Px64 " is not an object reference\n", value);
}
} else {
- OS::Print("%s unrecognized\n", arg1);
+ OS::PrintErr("%s unrecognized\n", arg1);
}
} else {
- OS::Print("printobject <*reg or *addr>\n");
+ OS::PrintErr("printobject <*reg or *addr>\n");
}
} else if (strcmp(cmd, "disasm") == 0) {
uint64_t start = 0;
@@ -555,9 +557,10 @@
// No length parameter passed, assume 10 instructions.
if (Simulator::IsIllegalAddress(start)) {
// If start isn't a valid address, warn and use PC instead.
- OS::Print("First argument yields invalid address: 0x%" Px64 "\n",
- start);
- OS::Print("Using PC instead\n");
+ OS::PrintErr("First argument yields invalid address: 0x%" Px64
+ "\n",
+ start);
+ OS::PrintErr("Using PC instead\n");
start = sim_->get_pc();
}
end = start + (10 * Instr::kInstrSize);
@@ -567,9 +570,10 @@
if (GetValue(arg1, &start) && GetValue(arg2, &length)) {
if (Simulator::IsIllegalAddress(start)) {
// If start isn't a valid address, warn and use PC instead.
- OS::Print("First argument yields invalid address: 0x%" Px64 "\n",
- start);
- OS::Print("Using PC instead\n");
+ OS::PrintErr("First argument yields invalid address: 0x%" Px64
+ "\n",
+ start);
+ OS::PrintErr("Using PC instead\n");
start = sim_->get_pc();
}
end = start + (length * Instr::kInstrSize);
@@ -579,58 +583,58 @@
if (FLAG_support_disassembler) {
Disassembler::Disassemble(start, end);
} else {
- OS::Print("Disassembler not supported in this mode.\n");
+ OS::PrintErr("Disassembler not supported in this mode.\n");
}
} else {
- OS::Print("disasm [<address> [<number_of_instructions>]]\n");
+ OS::PrintErr("disasm [<address> [<number_of_instructions>]]\n");
}
} else if (strcmp(cmd, "gdb") == 0) {
- OS::Print("relinquishing control to gdb\n");
+ OS::PrintErr("relinquishing control to gdb\n");
OS::DebugBreak();
- OS::Print("regaining control from gdb\n");
+ OS::PrintErr("regaining control from gdb\n");
} else if (strcmp(cmd, "break") == 0) {
if (args == 2) {
uint64_t addr;
if (GetValue(arg1, &addr)) {
if (!SetBreakpoint(reinterpret_cast<Instr*>(addr))) {
- OS::Print("setting breakpoint failed\n");
+ OS::PrintErr("setting breakpoint failed\n");
}
} else {
- OS::Print("%s unrecognized\n", arg1);
+ OS::PrintErr("%s unrecognized\n", arg1);
}
} else {
- OS::Print("break <addr>\n");
+ OS::PrintErr("break <addr>\n");
}
} else if (strcmp(cmd, "del") == 0) {
if (!DeleteBreakpoint(NULL)) {
- OS::Print("deleting breakpoint failed\n");
+ OS::PrintErr("deleting breakpoint failed\n");
}
} else if (strcmp(cmd, "flags") == 0) {
- OS::Print("APSR: ");
- OS::Print("N flag: %d; ", sim_->n_flag_);
- OS::Print("Z flag: %d; ", sim_->z_flag_);
- OS::Print("C flag: %d; ", sim_->c_flag_);
- OS::Print("V flag: %d\n", sim_->v_flag_);
+ OS::PrintErr("APSR: ");
+ OS::PrintErr("N flag: %d; ", sim_->n_flag_);
+ OS::PrintErr("Z flag: %d; ", sim_->z_flag_);
+ OS::PrintErr("C flag: %d; ", sim_->c_flag_);
+ OS::PrintErr("V flag: %d\n", sim_->v_flag_);
} else if (strcmp(cmd, "unstop") == 0) {
intptr_t stop_pc = sim_->get_pc() - Instr::kInstrSize;
Instr* stop_instr = reinterpret_cast<Instr*>(stop_pc);
if (stop_instr->IsExceptionGenOp()) {
stop_instr->SetInstructionBits(Instr::kNopInstruction);
} else {
- OS::Print("Not at debugger stop.\n");
+ OS::PrintErr("Not at debugger stop.\n");
}
} else if (strcmp(cmd, "trace") == 0) {
if (FLAG_trace_sim_after == ULLONG_MAX) {
FLAG_trace_sim_after = sim_->get_icount();
- OS::Print("execution tracing on\n");
+ OS::PrintErr("execution tracing on\n");
} else {
FLAG_trace_sim_after = ULLONG_MAX;
- OS::Print("execution tracing off\n");
+ OS::PrintErr("execution tracing off\n");
}
} else if (strcmp(cmd, "bt") == 0) {
PrintBacktrace();
} else {
- OS::Print("Unknown command: %s\n", cmd);
+ OS::PrintErr("Unknown command: %s\n", cmd);
}
}
delete[] line;
@@ -652,7 +656,7 @@
char line_buf[256];
intptr_t offset = 0;
bool keep_going = true;
- OS::Print("%s", prompt);
+ OS::PrintErr("%s", prompt);
while (keep_going) {
if (fgets(line_buf, sizeof(line_buf), stdin) == NULL) {
// fgets got an error. Just give up.
@@ -1159,8 +1163,8 @@
// Unsupported instructions use Format to print an error and stop execution.
void Simulator::Format(Instr* instr, const char* format) {
- OS::Print("Simulator found unsupported instruction:\n 0x%p: %s\n", instr,
- format);
+ OS::PrintErr("Simulator found unsupported instruction:\n 0x%p: %s\n", instr,
+ format);
UNIMPLEMENTED();
}
diff --git a/runtime/vm/snapshot.cc b/runtime/vm/snapshot.cc
index 68ebca2..5f97708 100644
--- a/runtime/vm/snapshot.cc
+++ b/runtime/vm/snapshot.cc
@@ -391,7 +391,7 @@
str_ = String::ScrubName(str_);
cls_ = library_.LookupClassAllowPrivate(str_);
if (cls_.IsNull()) {
- OS::Print("Name of class not found %s\n", str_.ToCString());
+ OS::PrintErr("Name of class not found %s\n", str_.ToCString());
SetReadException("Invalid Class object found in message.");
}
cls_.EnsureIsFinalized(thread());
@@ -1082,7 +1082,7 @@
return true;
}
default:
- OS::Print("class id = %" Pd "\n", id);
+ OS::PrintErr("class id = %" Pd "\n", id);
break;
}
}
diff --git a/runtime/vm/snapshot_test.cc b/runtime/vm/snapshot_test.cc
index e3d9d82..cbe79e2 100644
--- a/runtime/vm/snapshot_test.cc
+++ b/runtime/vm/snapshot_test.cc
@@ -1121,7 +1121,7 @@
script ^= lib_scripts.At(i);
EXPECT(!script.IsNull());
uri = script.url();
- OS::Print("Generating source for part: %s\n", uri.ToCString());
+ OS::PrintErr("Generating source for part: %s\n", uri.ToCString());
GenerateSourceAndCheck(script);
}
}
@@ -1142,7 +1142,7 @@
lib ^= libs.At(i);
EXPECT(!lib.IsNull());
uri = lib.url();
- OS::Print("Generating source for library: %s\n", uri.ToCString());
+ OS::PrintErr("Generating source for library: %s\n", uri.ToCString());
IterateScripts(lib);
}
diff --git a/runtime/vm/stack_frame_test.cc b/runtime/vm/stack_frame_test.cc
index f5c5684..6facc4f 100644
--- a/runtime/vm/stack_frame_test.cc
+++ b/runtime/vm/stack_frame_test.cc
@@ -42,8 +42,8 @@
const Instance& expected = Instance::CheckedHandle(arguments->NativeArgAt(0));
const Instance& actual = Instance::CheckedHandle(arguments->NativeArgAt(1));
if (!expected.OperatorEquals(actual)) {
- OS::Print("expected: '%s' actual: '%s'\n", expected.ToCString(),
- actual.ToCString());
+ OS::PrintErr("expected: '%s' actual: '%s'\n", expected.ToCString(),
+ actual.ToCString());
FATAL("Expect_equals fails.\n");
}
}
diff --git a/runtime/vm/symbols.cc b/runtime/vm/symbols.cc
index 2e8c7db..78c655e 100644
--- a/runtime/vm/symbols.cc
+++ b/runtime/vm/symbols.cc
@@ -676,12 +676,12 @@
intptr_t capacity = -1;
// First dump VM symbol table stats.
GetStats(Dart::vm_isolate(), &size, &capacity);
- OS::Print("VM Isolate: Number of symbols : %" Pd "\n", size);
- OS::Print("VM Isolate: Symbol table capacity : %" Pd "\n", capacity);
+ OS::PrintErr("VM Isolate: Number of symbols : %" Pd "\n", size);
+ OS::PrintErr("VM Isolate: Symbol table capacity : %" Pd "\n", capacity);
// Now dump regular isolate symbol table stats.
GetStats(isolate, &size, &capacity);
- OS::Print("Isolate: Number of symbols : %" Pd "\n", size);
- OS::Print("Isolate: Symbol table capacity : %" Pd "\n", capacity);
+ OS::PrintErr("Isolate: Number of symbols : %" Pd "\n", size);
+ OS::PrintErr("Isolate: Symbol table capacity : %" Pd "\n", capacity);
// TODO(koda): Consider recording growth and collision stats in HashTable,
// in DEBUG mode.
}
diff --git a/runtime/vm/thread.cc b/runtime/vm/thread.cc
index 7f1c0d3..62d93a8 100644
--- a/runtime/vm/thread.cc
+++ b/runtime/vm/thread.cc
@@ -538,7 +538,7 @@
// False result from HandleOOBMessages signals that the isolate should
// be terminating.
if (FLAG_trace_isolates) {
- OS::Print(
+ OS::PrintErr(
"[!] Terminating isolate due to OOB message:\n"
"\tisolate: %s\n",
isolate()->name());
diff --git a/runtime/vm/thread_test.cc b/runtime/vm/thread_test.cc
index e033319..e4155eb 100644
--- a/runtime/vm/thread_test.cc
+++ b/runtime/vm/thread_test.cc
@@ -58,7 +58,7 @@
// Check whether this attempt falls within the expected time limits.
int64_t wakeup_time = (stop - start) / kMicrosecondsPerMillisecond;
- OS::Print("wakeup_time: %" Pd64 "\n", wakeup_time);
+ OS::PrintErr("wakeup_time: %" Pd64 "\n", wakeup_time);
const int kAcceptableTimeJitter = 20; // Measured in milliseconds.
const int kAcceptableWakeupDelay = 150; // Measured in milliseconds.
if (((wait_time - kAcceptableTimeJitter) <= wakeup_time) &&
diff --git a/runtime/vm/timeline.cc b/runtime/vm/timeline.cc
index 56b11d6..bea9fb6 100644
--- a/runtime/vm/timeline.cc
+++ b/runtime/vm/timeline.cc
@@ -1123,7 +1123,7 @@
OS::SCreate(NULL, "%s/dart-timeline-%" Pd ".json", directory, pid);
void* file = (*file_open)(filename, true);
if (file == NULL) {
- OS::Print("Failed to write timeline file: %s\n", filename);
+ OS::PrintErr("Failed to write timeline file: %s\n", filename);
free(filename);
return;
}
@@ -1450,7 +1450,7 @@
block->Open();
head_ = block;
if (FLAG_trace_timeline) {
- OS::Print("Created new block %p\n", block);
+ OS::PrintErr("Created new block %p\n", block);
}
return head_;
}
@@ -1540,7 +1540,7 @@
OSThread* os_thread = OSThread::Current();
ASSERT(os_thread != NULL);
intptr_t tid = OSThread::ThreadIdToIntPtr(os_thread->id());
- OS::Print("StartEvent in block %p for thread %" Px "\n", this, tid);
+ OS::PrintErr("StartEvent in block %p for thread %" Px "\n", this, tid);
}
return &events_[length_++];
}
@@ -1595,7 +1595,7 @@
void TimelineEventBlock::Finish() {
if (FLAG_trace_timeline) {
- OS::Print("Finish block %p\n", this);
+ OS::PrintErr("Finish block %p\n", this);
}
in_use_ = false;
if (Service::timeline_stream.enabled()) {
diff --git a/runtime/vm/timeline_analysis.cc b/runtime/vm/timeline_analysis.cc
index 4c08d6b..cb02834 100644
--- a/runtime/vm/timeline_analysis.cc
+++ b/runtime/vm/timeline_analysis.cc
@@ -181,7 +181,7 @@
error_msg_ = zone_->VPrint(format, args);
ASSERT(error_msg_ != NULL);
if (FLAG_trace_timeline_analysis) {
- OS::Print("TimelineAnalysis error = %s\n", error_msg_);
+ OS::PrintErr("TimelineAnalysis error = %s\n", error_msg_);
}
}
diff --git a/runtime/vm/unit_test.cc b/runtime/vm/unit_test.cc
index a88106a..7e3cd7a 100644
--- a/runtime/vm/unit_test.cc
+++ b/runtime/vm/unit_test.cc
@@ -719,10 +719,10 @@
const Instructions& instructions = Instructions::Handle(code_.instructions());
uword start = instructions.PayloadStart();
if (FLAG_disassemble) {
- OS::Print("Code for test '%s' {\n", name_);
+ OS::PrintErr("Code for test '%s' {\n", name_);
uword start = instructions.PayloadStart();
Disassembler::Disassemble(start, start + assembler_->CodeSize());
- OS::Print("}\n");
+ OS::PrintErr("}\n");
}
Disassembler::Disassemble(start, start + assembler_->CodeSize(), disassembly_,
DISASSEMBLY_SIZE);
@@ -790,7 +790,7 @@
ASSERT(isolate != NULL);
const Error& error = Error::Handle(Compiler::Compile(library, script));
if (!error.IsNull()) {
- OS::Print("Error compiling test script:\n%s\n", error.ToErrorCString());
+ OS::PrintErr("Error compiling test script:\n%s\n", error.ToErrorCString());
}
return error.IsNull();
}
diff --git a/runtime/vm/virtual_memory_fuchsia.cc b/runtime/vm/virtual_memory_fuchsia.cc
index fbcccb5..0b676c2 100644
--- a/runtime/vm/virtual_memory_fuchsia.cc
+++ b/runtime/vm/virtual_memory_fuchsia.cc
@@ -27,7 +27,7 @@
#define LOG_ERR(msg, ...) \
OS::PrintErr("VMVM: %s:%d: " msg, __FILE__, __LINE__, ##__VA_ARGS__)
#define LOG_INFO(msg, ...) \
- OS::Print("VMVM: %s:%d: " msg, __FILE__, __LINE__, ##__VA_ARGS__)
+ OS::PrintErr("VMVM: %s:%d: " msg, __FILE__, __LINE__, ##__VA_ARGS__)
#else
#define LOG_ERR(msg, ...)
#define LOG_INFO(msg, ...)
diff --git a/tests/standalone_2/io/code_collection_test.dart b/tests/standalone_2/io/code_collection_test.dart
index 1ee3b4f..99344df 100644
--- a/tests/standalone_2/io/code_collection_test.dart
+++ b/tests/standalone_2/io/code_collection_test.dart
@@ -12,7 +12,7 @@
x = x + 1;
// Print marker message while foo is on the stack so the code cannot be
// collected.
- print("foo=$x");
+ stderr.write("foo=$x\n");
return x;
}
@@ -56,7 +56,7 @@
if (arguments.contains("--run")) {
doTest();
} else {
- // Run the test and capture stdout.
+ // Run the test and capture stderr.
var args = packageOptions();
args.addAll([
"--verbose-gc",
@@ -72,13 +72,13 @@
Expect.equals(0, pr.exitCode);
- // Code drops are logged with --log-code-drop. Look through stdout for the
+ // Code drops are logged with --log-code-drop. Look through stderr for the
// message that foo's code was dropped.
- print(pr.stdout);
+ print(pr.stderr);
bool saw_foo2 = false;
bool saw_detaching_foo = false;
bool saw_foo3 = false;
- pr.stdout.split("\n").forEach((line) {
+ pr.stderr.split("\n").forEach((line) {
if (line.contains("foo=2")) {
Expect.isFalse(saw_foo2, "foo=2 ran twice");
saw_foo2 = true;
diff --git a/tests/standalone_2/io/stdio_implicit_close_script.dart b/tests/standalone_2/io/stdio_implicit_close_script.dart
index 4be58a88..2b09e2f 100644
--- a/tests/standalone_2/io/stdio_implicit_close_script.dart
+++ b/tests/standalone_2/io/stdio_implicit_close_script.dart
@@ -7,9 +7,8 @@
void main(List<String> arguments) {
// Access stdout and stderr so that the system grabs a handle to it. This
// initializes some internal structures.
- if (stdout.hashCode == -1234 && stderr.hashCode == (stderr.hashCode + 1)) {
- throw "we have other problems.";
- }
+ stdout.write("APPLE");
+ stderr.write("BANANA");
if (arguments.contains("stdout")) {
stdout.close();
diff --git a/tests/standalone_2/io/stdio_implicit_close_test.dart b/tests/standalone_2/io/stdio_implicit_close_test.dart
index 4fcd719..0df0e04 100644
--- a/tests/standalone_2/io/stdio_implicit_close_test.dart
+++ b/tests/standalone_2/io/stdio_implicit_close_test.dart
@@ -13,11 +13,7 @@
var scriptFile = "stdio_implicit_close_script.dart";
var script = Platform.script.resolve(scriptFile).toFilePath();
- // Relying on these flags to print something specific on stdout and stderr
- // is brittle, but otherwise we would need to add our own flag.
var arguments = [
- "--print-metrics", // Prints on stderr.
- "--timing", // Prints on stdout.
script,
];
if (closeStdout) arguments.add("stdout");
@@ -32,17 +28,8 @@
print(result.stderr);
Expect.equals(0, result.exitCode);
- if (closeStdout) {
- Expect.equals("", result.stdout);
- } else {
- Expect.isTrue(result.stdout.contains("Timing for"));
- }
-
- if (closeStderr) {
- Expect.equals("", result.stderr);
- } else {
- Expect.isTrue(result.stderr.contains("Printing metrics"));
- }
+ Expect.isTrue(result.stdout.contains("APPLE"));
+ Expect.isTrue(result.stderr.contains("BANANA"));
asyncEnd();
});