--- old/src/share/vm/utilities/debug.hpp 2017-06-16 19:47:25.964756218 -0400 +++ new/src/share/vm/utilities/debug.hpp 2017-06-16 19:47:25.832749615 -0400 @@ -25,97 +25,11 @@ #ifndef SHARE_VM_UTILITIES_DEBUG_HPP #define SHARE_VM_UTILITIES_DEBUG_HPP -#include "utilities/globalDefinitions.hpp" -#include "prims/jvm.h" +#include "utilities/breakpoint.hpp" +#include "utilities/compilerWarnings.hpp" +#include "utilities/macros.hpp" -#include - -// Simple class to format the ctor arguments into a fixed-sized buffer. -class FormatBufferBase { - protected: - char* _buf; - inline FormatBufferBase(char* buf) : _buf(buf) {} - public: - static const int BufferSize = 256; - operator const char *() const { return _buf; } -}; - -// Use resource area for buffer -class FormatBufferResource : public FormatBufferBase { - public: - FormatBufferResource(const char * format, ...) ATTRIBUTE_PRINTF(2, 3); -}; - -class FormatBufferDummy {}; - -// Use stack for buffer -template -class FormatBuffer : public FormatBufferBase { - public: - inline FormatBuffer(const char* format, ...) ATTRIBUTE_PRINTF(2, 3); - // since va_list is unspecified type (can be char*), we use FormatBufferDummy to disambiguate these constructors - inline FormatBuffer(FormatBufferDummy dummy, const char* format, va_list ap) ATTRIBUTE_PRINTF(3, 0); - inline void append(const char* format, ...) ATTRIBUTE_PRINTF(2, 3); - inline void print(const char* format, ...) ATTRIBUTE_PRINTF(2, 3); - inline void printv(const char* format, va_list ap) ATTRIBUTE_PRINTF(2, 0); - - char* buffer() { return _buf; } - int size() { return bufsz; } - - private: - FormatBuffer(const FormatBuffer &); // prevent copies - char _buffer[bufsz]; - - protected: - inline FormatBuffer(); -}; - -template -FormatBuffer::FormatBuffer(const char * format, ...) : FormatBufferBase(_buffer) { - va_list argp; - va_start(argp, format); - jio_vsnprintf(_buf, bufsz, format, argp); - va_end(argp); -} - -template -FormatBuffer::FormatBuffer(FormatBufferDummy dummy, const char * format, va_list ap) : FormatBufferBase(_buffer) { - jio_vsnprintf(_buf, bufsz, format, ap); -} - -template -FormatBuffer::FormatBuffer() : FormatBufferBase(_buffer) { - _buf[0] = '\0'; -} - -template -void FormatBuffer::print(const char * format, ...) { - va_list argp; - va_start(argp, format); - jio_vsnprintf(_buf, bufsz, format, argp); - va_end(argp); -} - -template -void FormatBuffer::printv(const char * format, va_list argp) { - jio_vsnprintf(_buf, bufsz, format, argp); -} - -template -void FormatBuffer::append(const char* format, ...) { - // Given that the constructor does a vsnprintf we can assume that - // _buf is already initialized. - size_t len = strlen(_buf); - char* buf_end = _buf + len; - - va_list argp; - va_start(argp, format); - jio_vsnprintf(buf_end, bufsz - len, format, argp); - va_end(argp); -} - -// Used to format messages. -typedef FormatBuffer<> err_msg; +#include // assertions #ifndef ASSERT @@ -311,10 +225,7 @@ // for test purposes, which is not NULL and contains bits in every word NOT_PRODUCT(void* get_segfault_address();) +class frame; void pd_ps(frame f); -void pd_obfuscate_location(char *buf, size_t buflen); - -class outputStream; -void print_native_stack(outputStream* st, frame fr, Thread* t, char* buf, int buf_size); #endif // SHARE_VM_UTILITIES_DEBUG_HPP