Go to file
Bryce McKinlay 18744d9b72 New Stack Trace infrastructure.
2005-03-10  Bryce McKinlay  <mckinlay@redhat.com>

	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.

From-SVN: r96253
2005-03-10 19:02:21 +00:00
INSTALL
boehm-gc Makefile.in, [...]: Regenerate. 2005-03-01 23:25:50 +00:00
config re PR bootstrap/17383 (Building in src dir fails) 2005-02-28 13:26:36 +00:00
contrib warn_summary (keywordFilter): Update sed pattern for new quoting style in warnings. 2005-03-08 13:42:18 +00:00
fastjar Introduce and use config/gcc-version.m4. 2004-12-02 11:05:13 +00:00
fixincludes Fix problem found by CFLAGS=-fmudflap build. 2005-02-23 14:30:01 -08:00
gcc re PR java/20312 (No warning on bad method) 2005-03-10 18:40:26 +00:00
gnattools * Makefile.in: Fix incorrect use of ' in shell command 2005-03-09 10:49:09 +01:00
include libiberty.h (gettimeofday): Declare. 2005-03-10 00:57:10 +00:00
intl aclocal.m4: Regenerate. 2004-11-24 21:53:28 +00:00
libada re PR bootstrap/17383 (Building in src dir fails) 2005-02-28 13:26:36 +00:00
libcpp tr.po: Update. 2005-03-04 20:29:03 +00:00
libffi re PR libffi/20104 (gij fails on ppc and not on x86) 2005-02-23 14:05:13 +00:00
libgfortran ChangeLog: Fix typo in Peter O'Gorman's name. 2005-02-27 20:59:02 +00:00
libiberty libiberty.h (gettimeofday): Declare. 2005-03-10 00:57:10 +00:00
libjava New Stack Trace infrastructure. 2005-03-10 19:02:21 +00:00
libmudflap * typo fix 2005-02-13 12:58:28 +00:00
libobjc hash.h (OBJC_IGNORE_DEPRECATED_API): Update deprecated version reference. 2005-03-03 18:25:04 +00:00
libstdc++-v3 Daily bump. 2005-03-10 00:19:29 +00:00
maintainer-scripts * crontab: Adjust for 4.0 branch. 2005-02-25 22:55:06 +00:00
zlib Revert bad import 2005-02-02 22:09:16 +00:00
.cvsignore configure, .cvsignore: Revert previous change... 2002-06-19 18:10:09 +00:00
ABOUT-NLS intl: New directory; see intl/ChangeLog for details. 2003-07-04 18:18:54 +00:00
COPYING
COPYING.LIB
ChangeLog MAINTAINERS (Write After Approval): Add myself. 2005-03-03 14:46:49 +00:00
ChangeLog.tree-ssa Merge tree-ssa-20020619-branch into mainline. 2004-05-13 02:41:07 -04:00
MAINTAINERS MAINTAINERS (Write After Approval): Add myself. 2005-03-03 14:46:49 +00:00
Makefile.def re PR bootstrap/17383 (Building in src dir fails) 2005-02-28 13:26:36 +00:00
Makefile.in re PR bootstrap/20250 (fixincludes is no longer installs but does make check instead) 2005-02-28 07:09:55 -08:00
Makefile.tpl re PR bootstrap/20250 (fixincludes is no longer installs but does make check instead) 2005-02-28 07:09:55 -08:00
README
README.SCO * README.SCO: Update per FSF instructions. 2004-11-01 02:19:48 +00:00
compile install-sh, compile: Import from automake. 2004-11-16 01:04:30 +00:00
config-ml.in re PR bootstrap/18033 (--disable-aix64 doesn't remove ppc64 from multilib list) 2005-01-12 19:47:56 -05:00
config.guess config.guess, config.sub: Import from savannnah. 2004-11-16 00:57:01 +00:00
config.rpath intl: New directory; see intl/ChangeLog for details. 2003-07-04 18:18:54 +00:00
config.sub install-sh, config.sub: Import from upstream. 2005-01-18 01:20:48 +00:00
configure re PR bootstrap/17383 (Building in src dir fails) 2005-02-28 13:26:36 +00:00
configure.in re PR bootstrap/17383 (Building in src dir fails) 2005-02-28 13:26:36 +00:00
depcomp config.guess: New upstream version 2004-09-23 01:21:50 +00:00
install-sh install-sh, config.sub: Import from upstream. 2005-01-18 01:20:48 +00:00
libtool.m4 libtool.m4 (AC_DEPLIBS_CHECK_METHOD): Re-import linux-gnu case from CVS libtool to always pass_all. 2004-11-29 23:45:23 +00:00
ltcf-c.sh ltcf-c.sh (tpf*): Add ld_shlibs=yes. 2004-10-02 16:33:06 +00:00
ltcf-cxx.sh ltcf-c.sh (tpf*): Add ld_shlibs=yes. 2004-10-02 16:33:06 +00:00
ltcf-gcj.sh Patch from Robert Millan. 2004-04-26 23:14:30 -07:00
ltconfig ltcf-c.sh (tpf*): Add ld_shlibs=yes. 2004-10-02 16:33:06 +00:00
ltmain.sh re PR libgcj/20160 (link errors building libgcj tests) 2005-03-01 22:27:43 +00:00
missing missing: Import latest version from master repository. 2004-09-07 08:33:10 +00:00
mkdep
mkinstalldirs re PR bootstrap/11932 (Parallel bootstrap failure with sparc libiberty multilib) 2004-02-20 02:01:16 +00:00
move-if-change
symlink-tree * config-ml.in, symlink-tree: Add license. 2003-08-14 16:44:23 -04:00
ylwrap * Revert to previous version due to Binutils breakage. 2004-09-24 11:14:51 +00:00

README

This directory contains the GNU Compiler Collection (GCC).

The GNU Compiler Collection is free software.  See the file COPYING
for copying permission.  The manuals, and some of the runtime
libraries, are under different terms; see the individual source files
for details.

The directory INSTALL contains copies of the installation information
as HTML and plain text.  The source of this information is
gcc/doc/install.texi.  The installation information includes details
of what is included in the GCC sources and what files GCC installs.

See the file gcc/doc/gcc.texi (together with other files that it
includes) for usage and porting information.  An online readable
version of the manual is in the files gcc/doc/gcc.info*.

See http://gcc.gnu.org/bugs.html for how to report bugs usefully.