[Bug libgcj/12740] New: Stack trace infrastructure improvements
bryce at mckinlay dot net dot nz
gcc-bugzilla@gcc.gnu.org
Thu Oct 23 03:38:00 GMT 2003
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.
More information about the Gcc-bugs
mailing list