This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug libgcj/12740] New: Stack trace infrastructure improvements


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]