Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-5062728

WIN64: VM should not use Vectored Exceptions

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P4 P4
    • 6
    • 5.0, 5.0u5
    • hotspot
    • None
    • b14
    • x86
    • generic, windows_2003, windows_xp

        Our 64 bit implementations of the JVM on Windows uses Vectored Exceptions.
        This causes a conflict if the Windows OS code or native libraries want to
        use Structured Exceptions.

        We recently worked around a bug that was caused by the fact that Windows
        uses SEH in it's implementation of malloc. They expected to get delivered
        an exception in certain rare cases but we'd instead get notified in our
        VEH and terminate the program with a fatal error.
        We worked around this bug 5040096 by passing control to Windows
        if an access violation is generated in NTDLL but this is not a
        perfect solution.

        The main reason we chose VEH was the fact that Windows could not handle
        dynamically generatred code during structured exception processing.
        We assumed that noone else would want to get control on access violations.

        The fix to this problem is to stop using Vectored Exceptions and register
        all dynamically generated code with Microsoft RtlInstallFunctionCallback
        or RtlAddFunctionTable APIs. This will allow us to register our
        exception handler for our code and allow Windows to dispatch exception
        to native code that used try/except blocks.
        ###@###.### 11/3/04 16:54 GMT

              bobv Bob Vandette (Inactive)
              bobv Bob Vandette (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved:
                Imported:
                Indexed: