From 15159a4eb6d1af9b463ef539b769ae451b83e362 Mon Sep 17 00:00:00 2001 From: aph Date: Mon, 17 Jan 2000 15:45:24 +0000 Subject: 2000-01-14 Andrew Haley * java/lang/natThrowable.cc: New file. * java/lang/Throwable.java (fillInStackTrace): Make native. (printStackTrace): Call native method to do this. (Throwable): Call fillInStackTrace. (stackTrace): New variable. * include/jvm.h: Add _Jv_ThisExecutable functions. * prims.cc: (_Jv_execName): New variable. (catch_segv): Call fillInStackTrace. (catch_fpe): Ditto. (_Jv_ThisExecutable): New functions. (JvRunMain): Set the name of this executable. * Makefile.am: Add java/lang/natThrowable.cc. Add name-finder.cc. * Makefile.in: Rebuilt. * acconfig.h: Add HAVE_PROC_SELF_EXE. * configure.in: Force link with __frame_state_for in FORCELIBGCCSPEC. Add new checks for backtrace. * include/config.h.in: Rebuilt. * name-finder.cc: New file. * include/name-finder.h: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31460 138bc75d-0d04-0410-961f-82ee72b054a4 --- libjava/java/lang/Throwable.java | 71 +++++++++++++++++++--------------------- 1 file changed, 34 insertions(+), 37 deletions(-) (limited to 'libjava/java/lang/Throwable.java') diff --git a/libjava/java/lang/Throwable.java b/libjava/java/lang/Throwable.java index 5ae39ae2594..faba2be1aa7 100644 --- a/libjava/java/lang/Throwable.java +++ b/libjava/java/lang/Throwable.java @@ -12,6 +12,7 @@ package java.lang; import java.io.PrintStream; import java.io.PrintWriter; import java.io.Serializable; +import java.io.OutputStreamWriter; /** * @author Tom Tromey @@ -26,55 +27,51 @@ import java.io.Serializable; public class Throwable implements Serializable { - public Throwable fillInStackTrace () - { - return this; - } + public native Throwable fillInStackTrace (); public String getLocalizedMessage () - { - return getMessage (); - } + { + return getMessage (); + } public String getMessage () - { - return detailMessage; - } + { + return detailMessage; + } public void printStackTrace () - { - printStackTrace (System.err); - } - - public void printStackTrace (PrintStream s) - { - // No stack trace, but we can still print this object. - s.println(toString ()); - } - - public void printStackTrace (PrintWriter wr) - { - // No stack trace, but we can still print this object. - wr.println(toString ()); - } - + { + printStackTrace (System.err); + } + + public void printStackTrace (PrintStream ps) + { + printStackTrace (new PrintWriter(new OutputStreamWriter(ps))); + } + + public native void printStackTrace (PrintWriter wr); + public Throwable () - { - detailMessage = null; - } + { + detailMessage = null; + fillInStackTrace (); + } public Throwable (String message) - { - detailMessage = message; - } + { + detailMessage = message; + fillInStackTrace (); + } public String toString () - { - return ((detailMessage == null) - ? getClass().getName() - : getClass().getName() + ": " + getMessage ()); - } + { + return ((detailMessage == null) + ? getClass().getName() + : getClass().getName() + ": " + getMessage ()); + } // Name of this field comes from serialization spec. private String detailMessage; + + private byte stackTrace[]; } -- cgit v1.2.1