2000-01-14 Andrew Haley <aph@cygnus.com> * 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. From-SVN: r31460
78 lines
1.6 KiB
Java
78 lines
1.6 KiB
Java
// Throwable.java - Superclass for all exceptions.
|
|
|
|
/* Copyright (C) 1998, 1999 Cygnus Solutions
|
|
|
|
This file is part of libgcj.
|
|
|
|
This software is copyrighted work licensed under the terms of the
|
|
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
|
details. */
|
|
|
|
package java.lang;
|
|
import java.io.PrintStream;
|
|
import java.io.PrintWriter;
|
|
import java.io.Serializable;
|
|
import java.io.OutputStreamWriter;
|
|
|
|
/**
|
|
* @author Tom Tromey <tromey@cygnus.com>
|
|
* @date October 30, 1998
|
|
*/
|
|
|
|
/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
|
|
* "The Java Language Specification", ISBN 0-201-63451-1
|
|
* Status: Sufficient for compiled code, but methods applicable to
|
|
* bytecode not implemented. JDK 1.1.
|
|
*/
|
|
|
|
public class Throwable implements Serializable
|
|
{
|
|
public native Throwable fillInStackTrace ();
|
|
|
|
public String getLocalizedMessage ()
|
|
{
|
|
return getMessage ();
|
|
}
|
|
|
|
public String getMessage ()
|
|
{
|
|
return detailMessage;
|
|
}
|
|
|
|
public void printStackTrace ()
|
|
{
|
|
printStackTrace (System.err);
|
|
}
|
|
|
|
public void printStackTrace (PrintStream ps)
|
|
{
|
|
printStackTrace (new PrintWriter(new OutputStreamWriter(ps)));
|
|
}
|
|
|
|
public native void printStackTrace (PrintWriter wr);
|
|
|
|
public Throwable ()
|
|
{
|
|
detailMessage = null;
|
|
fillInStackTrace ();
|
|
}
|
|
|
|
public Throwable (String message)
|
|
{
|
|
detailMessage = message;
|
|
fillInStackTrace ();
|
|
}
|
|
|
|
public String toString ()
|
|
{
|
|
return ((detailMessage == null)
|
|
? getClass().getName()
|
|
: getClass().getName() + ": " + getMessage ());
|
|
}
|
|
|
|
// Name of this field comes from serialization spec.
|
|
private String detailMessage;
|
|
|
|
private byte stackTrace[];
|
|
}
|