< prev index next >

src/hotspot/share/utilities/events.cpp

Print this page
rev 55013 : [mq]: VM.events

*** 49,78 **** _next = Events::_logs; Events::_logs = this; } // For each registered event logger, print out the current contents of ! // the buffer. This is normally called when the JVM is crashing. ! void Events::print_all(outputStream* out) { EventLog* log = _logs; while (log != NULL) { ! log->print_log_on(out); log = log->next(); } } void Events::print() { print_all(tty); } void Events::init() { if (LogEvents) { ! _messages = new StringEventLog("Events"); ! _exceptions = new ExceptionsEventLog("Internal exceptions"); ! _redefinitions = new StringEventLog("Classes redefined"); ! _class_unloading = new UnloadingEventLog("Classes unloaded"); ! _deopt_messages = new StringEventLog("Deoptimization events"); } } void eventlog_init() { Events::init(); --- 49,103 ---- _next = Events::_logs; Events::_logs = this; } // For each registered event logger, print out the current contents of ! // the buffer. ! void Events::print_all(outputStream* out, int max) { EventLog* log = _logs; while (log != NULL) { ! log->print_log_on(out, max); log = log->next(); } } + // Print a single event log specified by name. + void Events::print_one(outputStream* out, const char* log_name, int max) { + EventLog* log = _logs; + int num_printed = 0; + while (log != NULL) { + if (log->matches_name(log_name)) { + log->print_log_on(out, max); + num_printed ++; + } + log = log->next(); + } + // Write a short error note if no name matched. + if (num_printed == 0) { + out->print_cr("The name \"%s\" did not match any known event log. " + "Valid event log names are:", log_name); + EventLog* log = _logs; + while (log != NULL) { + log->print_names(out); + out->cr(); + log = log->next(); + } + } + } + + void Events::print() { print_all(tty); } void Events::init() { if (LogEvents) { ! _messages = new StringEventLog("Events", "events"); ! _exceptions = new ExceptionsEventLog("Internal exceptions", "exc"); ! _redefinitions = new StringEventLog("Classes redefined", "redef"); ! _class_unloading = new UnloadingEventLog("Classes unloaded", "unload"); ! _deopt_messages = new StringEventLog("Deoptimization events", "deopt"); } } void eventlog_init() { Events::init();
< prev index next >