1 /* |
1 /* |
2 * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * |
4 * |
5 * This code is free software; you can redistribute it and/or modify it |
5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as |
6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. |
7 * published by the Free Software Foundation. |
461 static int cause_offset; |
461 static int cause_offset; |
462 static int stackTrace_offset; |
462 static int stackTrace_offset; |
463 static int static_unassigned_stacktrace_offset; |
463 static int static_unassigned_stacktrace_offset; |
464 |
464 |
465 // Printing |
465 // Printing |
466 static char* print_stack_element_to_buffer(Method* method, int bci); |
466 static char* print_stack_element_to_buffer(Handle mirror, int method, int version, int bci); |
467 static void print_to_stream(Handle stream, const char* str); |
|
468 // StackTrace (programmatic access, new since 1.4) |
467 // StackTrace (programmatic access, new since 1.4) |
469 static void clear_stacktrace(oop throwable); |
468 static void clear_stacktrace(oop throwable); |
470 // No stack trace available |
469 // No stack trace available |
471 static const char* no_stack_trace_message(); |
470 static const char* no_stack_trace_message(); |
472 // Stacktrace (post JDK 1.7.0 to allow immutability protocol to be followed) |
471 // Stacktrace (post JDK 1.7.0 to allow immutability protocol to be followed) |
482 static int get_detailMessage_offset() { return detailMessage_offset;} |
481 static int get_detailMessage_offset() { return detailMessage_offset;} |
483 // Message |
482 // Message |
484 static oop message(oop throwable); |
483 static oop message(oop throwable); |
485 static oop message(Handle throwable); |
484 static oop message(Handle throwable); |
486 static void set_message(oop throwable, oop value); |
485 static void set_message(oop throwable, oop value); |
487 // Print stack trace stored in exception by call-back to Java |
486 static void print_stack_element(outputStream *st, Handle mirror, int method, |
488 // Note: this is no longer used in Merlin, but we still suppport |
487 int version, int bci); |
489 // it for compatibility. |
488 static void print_stack_element(outputStream *st, methodHandle method, int bci); |
490 static void print_stack_trace(oop throwable, oop print_stream); |
|
491 static void print_stack_element(Handle stream, Method* method, int bci); |
|
492 static void print_stack_element(outputStream *st, Method* method, int bci); |
|
493 static void print_stack_usage(Handle stream); |
489 static void print_stack_usage(Handle stream); |
494 |
490 |
495 // Allocate space for backtrace (created but stack trace not filled in) |
491 // Allocate space for backtrace (created but stack trace not filled in) |
496 static void allocate_backtrace(Handle throwable, TRAPS); |
492 static void allocate_backtrace(Handle throwable, TRAPS); |
497 // Fill in current stack trace for throwable with preallocated backtrace (no GC) |
493 // Fill in current stack trace for throwable with preallocated backtrace (no GC) |
1255 static void set_methodName(oop element, oop value); |
1251 static void set_methodName(oop element, oop value); |
1256 static void set_fileName(oop element, oop value); |
1252 static void set_fileName(oop element, oop value); |
1257 static void set_lineNumber(oop element, int value); |
1253 static void set_lineNumber(oop element, int value); |
1258 |
1254 |
1259 // Create an instance of StackTraceElement |
1255 // Create an instance of StackTraceElement |
1260 static oop create(methodHandle m, int bci, TRAPS); |
1256 static oop create(Handle mirror, int method, int version, int bci, TRAPS); |
|
1257 static oop create(methodHandle method, int bci, TRAPS); |
1261 |
1258 |
1262 // Debugging |
1259 // Debugging |
1263 friend class JavaClasses; |
1260 friend class JavaClasses; |
1264 }; |
1261 }; |
1265 |
1262 |