--- old/src/share/vm/trace/traceStream.hpp 2019-01-28 17:44:54.000000000 +0800 +++ new/src/share/vm/trace/traceStream.hpp 2019-01-28 17:44:54.000000000 +0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -30,53 +30,54 @@ #include "oops/klass.hpp" #include "oops/method.hpp" #include "oops/symbol.hpp" +#include "memory/allocation.hpp" +#include "utilities/debug.hpp" #include "utilities/ostream.hpp" -class TraceStream : public StackObj { - private: - outputStream& _st; +class ClassLoaderData; +class Klass; +class Method; +class TraceStream : public StackObj { public: - TraceStream(outputStream& stream): _st(stream) {} - - void print_val(const char* label, u1 val) { - _st.print("%s = " UINT32_FORMAT, label, val); + TraceStream() { + assert(tty != NULL, "invariant"); } - void print_val(const char* label, u2 val) { - _st.print("%s = " UINT32_FORMAT, label, val); + void print(const char* val) const { + tty->print("%s", val); } - void print_val(const char* label, s2 val) { - _st.print("%s = " INT32_FORMAT, label, val); + void print_val(const char* label, u1 val) const { + tty->print("%s = " UINT32_FORMAT, label, val); } - void print_val(const char* label, u4 val) { - _st.print("%s = " UINT32_FORMAT, label, val); + void print_val(const char* label, u2 val) const { + tty->print("%s = " UINT32_FORMAT, label, val); } - void print_val(const char* label, s4 val) { - _st.print("%s = " INT32_FORMAT, label, val); + void print_val(const char* label, s2 val) const { + tty->print("%s = " INT32_FORMAT, label, val); } - void print_val(const char* label, u8 val) { - _st.print("%s = " UINT64_FORMAT, label, val); + void print_val(const char* label, u4 val) const { + tty->print("%s = " UINT32_FORMAT, label, val); } - void print_val(const char* label, s8 val) { - _st.print("%s = " INT64_FORMAT, label, (int64_t) val); + void print_val(const char* label, s4 val) const { + tty->print("%s = " INT32_FORMAT, label, val); } - void print_val(const char* label, bool val) { - _st.print("%s = %s", label, val ? "true" : "false"); + void print_val(const char* label, u8 val) const { + tty->print("%s = " UINT64_FORMAT, label, val); } - void print_val(const char* label, float val) { - _st.print("%s = %f", label, val); + void print_val(const char* label, s8 val) const { + tty->print("%s = " INT64_FORMAT, label, (int64_t) val); } - void print_val(const char* label, double val) { - _st.print("%s = %f", label, val); + void print_val(const char* label, bool val) const { + tty->print("%s = %s", label, val ? "true" : "false"); } // Caller is machine generated code located in traceEventClasses.hpp @@ -91,7 +92,7 @@ description = name->as_C_string(); } } - _st.print("%s = %s", label, description); + tty->print("%s = %s", label, description); } // Caller is machine generated code located in traceEventClasses.hpp @@ -103,16 +104,24 @@ if (val != NULL) { description = val->name_and_sig_as_C_string(); } - _st.print("%s = %s", label, description); + tty->print("%s = %s", label, description); } - void print_val(const char* label, const char* val) { - _st.print("%s = '%s'", label, val); + void print_val(const char* label, float val) const { + tty->print("%s = %f", label, val); } - void print(const char* val) { - _st.print("%s", val); + void print_val(const char* label, double val) const { + tty->print("%s = %f", label, val); } + + void print_val(const char* label, const char* val) const { + tty->print("%s = '%s'", label, val); + } + + void print_val(const char* label, const Klass* val) const; + void print_val(const char* label, const Method* val) const ; + void print_val(const char* label, const ClassLoaderData* cld) const; }; #endif // INCLUDE_TRACE