equal
deleted
inserted
replaced
985 |
985 |
986 // moved from debug.cpp (used to be find()) but still called from there |
986 // moved from debug.cpp (used to be find()) but still called from there |
987 // The verbose parameter is only set by the debug code in one case |
987 // The verbose parameter is only set by the debug code in one case |
988 void os::print_location(outputStream* st, intptr_t x, bool verbose) { |
988 void os::print_location(outputStream* st, intptr_t x, bool verbose) { |
989 address addr = (address)x; |
989 address addr = (address)x; |
|
990 // Handle NULL first, so later checks don't need to protect against it. |
|
991 if (addr == NULL) { |
|
992 st->print_cr("0x0 is NULL"); |
|
993 return; |
|
994 } |
990 CodeBlob* b = CodeCache::find_blob_unsafe(addr); |
995 CodeBlob* b = CodeCache::find_blob_unsafe(addr); |
991 if (b != NULL) { |
996 if (b != NULL) { |
992 if (b->is_buffer_blob()) { |
997 if (b->is_buffer_blob()) { |
993 // the interpreter is generated into a buffer blob |
998 // the interpreter is generated into a buffer blob |
994 InterpreterCodelet* i = Interpreter::codelet_containing(addr); |
999 InterpreterCodelet* i = Interpreter::codelet_containing(addr); |