comparison src/share/vm/classfile/javaClasses.hpp @ 7624:b14da2e6f2dc

7174978: NPG: Fix bactrace builder for class redefinition Summary: Remove Method* from backtrace but save version so redefine classes doesn't give inaccurate line numbers. Removed old Merlin API with duplicate code. Reviewed-by: dholmes, sspitsyn
author coleenp
date Thu, 17 Jan 2013 13:40:31 -0500
parents ade95d680b42
children c73c3f2c5b3b
comparison
equal deleted inserted replaced
7623:203f64878aab 7624:b14da2e6f2dc
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.
467 static int cause_offset; 467 static int cause_offset;
468 static int stackTrace_offset; 468 static int stackTrace_offset;
469 static int static_unassigned_stacktrace_offset; 469 static int static_unassigned_stacktrace_offset;
470 470
471 // Printing 471 // Printing
472 static char* print_stack_element_to_buffer(Method* method, int bci); 472 static char* print_stack_element_to_buffer(Handle mirror, int method, int version, int bci);
473 static void print_to_stream(Handle stream, const char* str);
474 // StackTrace (programmatic access, new since 1.4) 473 // StackTrace (programmatic access, new since 1.4)
475 static void clear_stacktrace(oop throwable); 474 static void clear_stacktrace(oop throwable);
476 // No stack trace available 475 // No stack trace available
477 static const char* no_stack_trace_message(); 476 static const char* no_stack_trace_message();
478 // Stacktrace (post JDK 1.7.0 to allow immutability protocol to be followed) 477 // Stacktrace (post JDK 1.7.0 to allow immutability protocol to be followed)
488 static int get_detailMessage_offset() { return detailMessage_offset;} 487 static int get_detailMessage_offset() { return detailMessage_offset;}
489 // Message 488 // Message
490 static oop message(oop throwable); 489 static oop message(oop throwable);
491 static oop message(Handle throwable); 490 static oop message(Handle throwable);
492 static void set_message(oop throwable, oop value); 491 static void set_message(oop throwable, oop value);
493 // Print stack trace stored in exception by call-back to Java 492 static void print_stack_element(outputStream *st, Handle mirror, int method,
494 // Note: this is no longer used in Merlin, but we still suppport 493 int version, int bci);
495 // it for compatibility. 494 static void print_stack_element(outputStream *st, methodHandle method, int bci);
496 static void print_stack_trace(oop throwable, oop print_stream);
497 static void print_stack_element(Handle stream, Method* method, int bci);
498 static void print_stack_element(outputStream *st, Method* method, int bci);
499 static void print_stack_usage(Handle stream); 495 static void print_stack_usage(Handle stream);
500 496
501 // Allocate space for backtrace (created but stack trace not filled in) 497 // Allocate space for backtrace (created but stack trace not filled in)
502 static void allocate_backtrace(Handle throwable, TRAPS); 498 static void allocate_backtrace(Handle throwable, TRAPS);
503 // Fill in current stack trace for throwable with preallocated backtrace (no GC) 499 // Fill in current stack trace for throwable with preallocated backtrace (no GC)
1261 static void set_methodName(oop element, oop value); 1257 static void set_methodName(oop element, oop value);
1262 static void set_fileName(oop element, oop value); 1258 static void set_fileName(oop element, oop value);
1263 static void set_lineNumber(oop element, int value); 1259 static void set_lineNumber(oop element, int value);
1264 1260
1265 // Create an instance of StackTraceElement 1261 // Create an instance of StackTraceElement
1266 static oop create(methodHandle m, int bci, TRAPS); 1262 static oop create(Handle mirror, int method, int version, int bci, TRAPS);
1263 static oop create(methodHandle method, int bci, TRAPS);
1267 1264
1268 // Debugging 1265 // Debugging
1269 friend class JavaClasses; 1266 friend class JavaClasses;
1270 }; 1267 };
1271 1268