This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug libgcj/12740] New: Stack trace infrastructure improvements
- From: "bryce at mckinlay dot net dot nz" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 23 Oct 2003 03:35:58 -0000
- Subject: [Bug libgcj/12740] New: Stack trace infrastructure improvements
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12740
Summary: Stack trace infrastructure improvements
Product: gcc
Version: 3.4
Status: UNCONFIRMED
Severity: enhancement
Priority: P2
Component: libgcj
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: bryce at mckinlay dot net dot nz
CC: gcc-bugs at gcc dot gnu dot org
Stack traces are used by the Throwable class, security checks, calling-classloader lookup, and
reflection accessibility checks. However, the current implementation is not conductive to
supporting all these uses in an efficient manner. It needs to be refactored and improved.
Specifically:
- libgcc's unwinder machinery should be used instead of backtrace()
- allocation during stack tracing should be avoided where possible
- for security/classloader/accessibility checks, we should only walk the stack as far as needed to
complete the check, not the entire stack
- native "RawData" pointers should not be passed around in Java code
The idea is to put common stack-trace infrastructure - code used for both exceptions and security
- in a stacktrace.cc or something similar. natVMThrowable will use that and StackTrace.java etc will
go away.