summaryrefslogtreecommitdiffstats
path: root/libjava/gnu/gcj/runtime/NameFinder.java
Commit message (Collapse)AuthorAgeFilesLines
* 2006-06-05 David Daney <ddaney@avtrex.com>daney2006-06-061-2/+18
| | | | | | | | | | | | | | | | | | * gcj.texi (libgcj Runtime Properties): Document gnu.gcj.runtime.NameFinder.show_raw and gnu.gcj.runtime.NameFinder.remove_unknown. 2006-06-05 David Daney <ddaney@avtrex.com> * gnu/gcj/runtime/NameFinder.java (show_raw): New field. (showRaw): New method. * stacktrace.cc : Include gnu/gcj/runtime/StringBuffer.h. (getLineNumberForFrame): Show IP offset in trace if line number not available and show_raw true. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@114437 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-05-11 Bryce McKinlay <mckinlay@redhat.com>bryce2006-05-111-3/+6
| | | | | | | | | * gnu/gcj/runtime/NameFinder.java (lookup): If exec'ing addr2line fails, don't try again. (use_addr2line): Field no longer final. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@113715 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-05-11 Bryce McKinlay <mckinlay@redhat.com>bryce2006-05-111-1/+14
| | | | | | | | | * gnu/gcj/runtime/NameFinder.java (blacklist): New static field. (lookup): If addr2line fails to find an address, flag the binary as having no debug info and avoid calling addr2line on it again. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@113711 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-16 Andrew Haley <aph@redhat.com>aph2006-02-171-0/+15
| | | | | | | | | | | | | | | | * stacktrace.cc (GetStackTraceElements): Call gnu::gcj::runtime::NameFinder::removeUnknown() to determine if non-Java frames should be removed from a printed stack trace. Pass methodName to getLineNumberForFrame(). (getLineNumberForFrame): Set method_name from info.dli_sname. * gnu/gcj/runtime/NameFinder.java (removeUnknown): New method. (remove_unknown): New variable. * include/java-stack.h (_Jv_StackTrace::getLineNumberForFrame): Add methodName arg. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111181 138bc75d-0d04-0410-961f-82ee72b054a4
* 2005-04-22 Andrew Pinski <pinskia@physics.uc.edu>pinskia2005-04-221-4/+6
| | | | | | | | * gnu/gcj/runtime/NameFinder.java (close): IN, OUT, and PROC can all be null, check for that case and don't deference it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@98573 138bc75d-0d04-0410-961f-82ee72b054a4
* 2005-03-10 Bryce McKinlay <mckinlay@redhat.com>bryce2005-03-101-414/+108
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New Stack Trace infrastructure. * Makefile.am (libgcj0_convenience_la_SOURCES): Add stacktrace.cc. (gnu/gcj/runtime/StackTrace.lo): Removed. (ordinary_java_source_files): Remove obsolete files. (nat_source_files): Remove obsolete files. Add natVMThrowable.cc. * configure.host (fallback_backtrace_h): Set backtrace header for mingw and cygwin targets. * configure.ac: Make symlink for fallback backtrace headers. * Makefile.in, configure: Rebuilt. * defineclass.cc (_Jv_ClassReader::read_one_code_attribute): Read 'LineNumberTable' attribute. (_Jv_ClassReader::read_one_class_attribute): Read 'SourceFile' attribute. (_Jv_ClassReader::handleCodeAttribute): Initialize method line table fields. * exception.cc: Remove unused include. * interpret.cc (DIRECT_THREADED, insn_slot): Moved to java-interp.h. (SAVE_PC): New macro. Save current PC in the interpreter frame. (NULLCHECK, NULLARRAYCHECK): Use SAVE_PC. (_Jv_InterpMethod::compile): Translate bytecode PC values in the line table to direct threaded instruction values. (_Jv_StartOfInterpreter, _Jv_EndOfInterpreter): Removed. (_Jv_InterpMethod::run): No longer member function. All callers updated. Remove _Unwind calls. Call SAVE_PC whenever a call is made or where an instruction could throw. (_Jv_InterpMethod::get_source_line): New. Look up source line numbers in line_table. * prims.cc (catch_segv): Construct exception after MAKE_THROW_FRAME. (catch_fpe): Likewise. * stacktrace.cc: New file. Stack trace code now here. * gnu/gcj/runtime/MethodRef.java: * gnu/gcj/runtime/NameFinder.java: Mostly reimplemented. Now simply calls addr2line to look up PC addresses in a given binary or shared library. * gnu/gcj/runtime/StackTrace.java, gnu/gcj/runtime/natNameFinder.cc, gnu/gcj/runtime/natStackTrace.cc: Removed. * gnu/java/lang/MainThread.java (call_main): Add comment warning that this function name is specially recognised by the stack trace code and shouldn't be changed. * include/java-interp.h (DIRECT_THREADED, insn_slot): Moved here. (struct _Jv_LineTableEntry, line_table, line_table_len): New. (_Jv_InterpMethod::run): Update declaration. (_Jv_StackTrace_): New friend. NameFinder and StackTrace no longer friends. (_Jv_InterpFrame): Renamed from _Jv_MethodChain. Add PC field. * include/java-stack.h: New file. Declarations for stack tracing. * include/jvm.h (_Jv_Frame_info): Removed. * java/lang/Class.h: Update friend declarations. * java/lang/VMClassLoader.java (getSystemClassLoader): Simplify exception message. * java/lang/VMThrowable.java (fillInStackTrace): Now native. (getStackTrace): Now native. (data): New RawDataManaged field. * java/lang/natClass.cc: Update includes. (forName): Use _Jv_StackTrace::GetCallingClass for calling-classloader check. (getClassLoader): Likewise. * java/lang/natRuntime.cc: Update includes. (_load): Use _Jv_StackTrace::GetFirstNonSystemClassLoader. * java/lang/natVMSecurityManager.cc: Update includes. (getClassContext): Use _Jv_StackTrace::GetClassContext. * java/lang/natVMThrowable.cc: New file. Native methods for VMThrowable. * java/lang/reflect/natArray.cc: Update includes. (newInstance): Use _Jv_StackTrace::GetCallingClass to implement accessibility check. * java/lang/reflect/natConstructor.cc: Update includes. (newInstance): Use _Jv_StackTrace::GetCallingClass to implement accessibility check. * java/lang/reflect/natField.cc: Update includes. (getAddr): Use _Jv_StackTrace::GetCallingClass to implement accessibility check. * java/lang/reflect/natMethod.cc: Update includes. (invoke): Use _Jv_StackTrace::GetCallingClass to implement accessibility check. * java/util/natResourceBundle.cc: Update includes. (getCallingClassLoader): Use _Jv_StackTrace::GetCallingClass. * java/util/logging/natLogger.cc: Update includes. Use _Jv_StackTrace::GetCallerInfo to get call-site info. * sysdep/generic/backtrace.h: Fallback backtrace code. Stub implementation. * sysdep/i386/backtrace.h: New. Fallback backtrace code. i386 implementation. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@96253 138bc75d-0d04-0410-961f-82ee72b054a4
* Fixes bug libgcj/8170mark2005-02-121-25/+50
| | | | | | | | | | | | | | | | | | | | * java/lang/ClassLoader.java (loadClass): Don't rewrap ClassNotFoundException. * gnu/java/lang/MainThread.java (run): Chain NoClassDefFoundError. * gnu/gcj/runtime/NameFinder.java (remove_interpreter): Removed. (remove_internal): New field superceding remove_interpreter. (sanitizeStack): Remove all no-package classes starting with "_Jv_". Remove no-class methods starting with "_Jv_". And Replace null class or method names with the empty string. Stop at either the MainThread or a real Thread run() method. (newElement): Made static. * java/net/URLClassLoader.java (findClass): Throw ClassNotFoundExceptions including urls, plus parent using toString(). (thisString): New field. (toString): New method. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@94935 138bc75d-0d04-0410-961f-82ee72b054a4
* * java/lang/VMThrowable.java (getStackTrace): Pass trace as-is tormathew2004-04-091-4/+17
| | | | | | | | | | | | | | modified lookup(). * gnu/gcj/runtime/NameFinder.java (lookup): Change to take in a StackTraceElement directly. (newElement): New native helper method to create StackTraceElement bypassing Java access control. (createStackTraceElement): Use newElement() instead of directly calling StackTraceElement's constructor. * gnu/gcj/runtime/natNameFinder.cc (newElement): New method. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@80541 138bc75d-0d04-0410-961f-82ee72b054a4
* 2003-07-20 Anthony Green <green@redhat.com>green2003-07-211-12/+4
| | | | | | | | | | | | | | | | | * gnu/awt/j2d/AbstractGraphicsState.java (clone): Handle CloneNotSupportedException. * gnu/gcj/xlib/WindowAttributes.java (clone): Ditto. * gnu/gcj/xlib/WMSizeHints.java (clone): Ditto. * gnu/gcj/xlib/GC.java (clone): Ditto. * gnu/awt/xlib/XGraphics.java (clone): Ditto. * gnu/awt/j2d/Graphics2DImpl.java (clone): Ditto. * gnu/awt/xlib/XEventLoop.java (postNextEvent): Remove unreachable handler. * gnu/gcj/runtime/NameFinder.java (NameFinder): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69623 138bc75d-0d04-0410-961f-82ee72b054a4
* 2003-03-10 2003-02-27 Mohan Embar <gnustuff@thisiscool.com>aph2003-03-101-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * include/jvm.h: removed declaration of _Jv_ThisExecutable() setter; made return value of getter const char* instead of char* * prims.cc: removed all references to _Jv_ThisExecutable(). These are in the platform-specific sections now. * posix.cc: define platform-specific _Jv_ThisExecutable(). Handle DISABLE_MAIN_ARGS and HAVE_PROC_SELF_EXE cases * win32.cc: define platform-specific _Jv_ThisExecutable() using GetModuleFilename() * java/lang/natRuntime.cc: set gnu.gcj.progname property to argv[0] instead of _Jv_ThisExecutable() 2003-03-10 Ranjit Mathew <rmathew@hotmail.com> * gnu/gcj/runtime/NameFinder.java (usingAddr2name): New flag that is set if we are using addr2name.awk instead of addr2line. (NameFinder): Set usingAddr2name if using addr2name.awk. (getExternalLabel): New native method to convert a method name to an external label. (lookup): Convert name given by addr2line to an external label before demangling. * gnu/gcj/runtime/natNameFinder.cc (LABEL_PREFIX): New string constant representing the prefix attached to method names to convert them to an external label. (gnu::gcj::runtime::NameFinder::getExternalLabel): Define using LABEL_PREFIX. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@64111 138bc75d-0d04-0410-961f-82ee72b054a4
* 2002-02-13 Ranjit Mathew <rmathew@hotmail.com>mark2003-02-131-1/+1
| | | | | | | | | | * gnu/gcj/runtime/NameFinder.java (createStackTraceElement): Use lastIndexOf( ) instead of indexOf( ) to find the colon before the line number, because Win32 file names might contain a drive letter and a colon at the start of an absolute path. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@62834 138bc75d-0d04-0410-961f-82ee72b054a4
* * gnu/gcj/runtime/NameFinder.java (remove_interpreter): New field.mark2002-09-021-12/+144
| | | | | | | | | | | | (sanitizeStack): Correctly reset unknown and interpreter counters, detect interpreter runtime frames. (demangleInterpreterMethod): New method. * gnu/gcj/runtime/natNameFinder.cc (lookupInterp): Use new method. * java/lang/natVMThrowable.cc (fillInStackTrace): Change order of filling in addrs[]. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@56741 138bc75d-0d04-0410-961f-82ee72b054a4
* * include/jvm.h (struct _Jv_frame_info): New structure.tromey2002-08-291-1/+10
| | | | | | | | | | | | | | | | | | | | | | | * gnu/gcj/runtime/natNameFinder.cc: Include StringBuffer.h, java-interp.h. (lookupInterp): New method. (getAddrAsString): Use _Jv_frame_info. (dladdrLookup): Likewise. * gnu/gcj/runtime/NameFinder.java (lookup): Try to look up interpreted frame. (lookupInterp): Declare. * java/lang/natVMThrowable.cc: Include Thread.h, java-interp.h. (fillInStackTrace): Collect information on interpreted frames. Use _Jv_frame_info. * interpret.cc: Include Thread.h. (run): Create and push _Jv_MethodChain object. (_Jv_EndOfInterpreter): New global. * java/lang/Thread.java (interp_frame): New field. * include/java-interp.h (struct _Jv_MethodChain): New structure. Include NameFinder.h. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@56657 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.am (libgcj_la_SOURCES): Remove name-finder.cc.mark2002-08-241-0/+407
(core_java_source_files): Add VMThrowable.java and NameFinder.java (nat_source_files): Remove natThrowable.cc, add natVMThrowable.cc and natNameFinder.cc. * Makefile.in: Regenerate. * prims.cc: Use trace_enabled from VMThrowable. * name-finder.cc: Removed. * gcj/javaprims.h: Add class VMThrowable. * gnu/gcj/runtime/NameFinder.java: New file. * gnu/gcj/runtime/natNameFinder.cc: Likewise. * include/name-finder.h: Removed. * java/lang/Throwable.java (printStackTrace (PrintStream)): Use new method stackTraceString(). (printStackTrace (PrintWriter)): Likewise. (stackTraceString): Complete rewrite of old printStackTrace using StringBuffer. (stackTraceStringBuffer): New helper method for stackTraceString(). (fillInStackTrace): Delegate to VMTrowable. (getStackTrace): Likewise. (getStackTrace0): Removed. (trace_enabled, stackTraceBytes): Moved to new VMThrowable.java. (setStackTrace): Copy given array. * java/lang/natThrowable.cc: Removed (replaced by natVMThrowable). * java/lang/VMThrowable.java: New class. * java/lang/natVMThrowable.cc: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@56556 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud