Merge

Tue, 12 Apr 2011 10:32:42 -0400

author
vladidan
date
Tue, 12 Apr 2011 10:32:42 -0400
changeset 2774
c737922fd8bb
parent 2773
6c9cec219ce4
parent 2758
6a615eae2f34
child 2775
208b6c560ff4

Merge

     1.1 --- a/src/share/tools/ProjectCreator/WinGammaPlatformVC10.java	Mon Apr 11 23:02:37 2011 -0400
     1.2 +++ b/src/share/tools/ProjectCreator/WinGammaPlatformVC10.java	Tue Apr 12 10:32:42 2011 -0400
     1.3 @@ -497,6 +497,9 @@
     1.4              addAttr(rv, "TargetMachine", "MachineX64");
     1.5          }
     1.6  
     1.7 +        // We always want the /DEBUG option to get full symbol information in the pdb files
     1.8 +        addAttr(rv, "GenerateDebugInformation", "true");
     1.9 +
    1.10          return rv;
    1.11      }
    1.12  
    1.13 @@ -504,8 +507,7 @@
    1.14      Vector getDebugLinkerFlags() {
    1.15          Vector rv = new Vector();
    1.16  
    1.17 -        // /DEBUG option
    1.18 -        addAttr(rv, "GenerateDebugInformation", "true");
    1.19 +        // Empty now that /DEBUG option is used by all configs
    1.20  
    1.21          return rv;
    1.22      }
     2.1 --- a/src/share/vm/classfile/javaClasses.cpp	Mon Apr 11 23:02:37 2011 -0400
     2.2 +++ b/src/share/vm/classfile/javaClasses.cpp	Tue Apr 12 10:32:42 2011 -0400
     2.3 @@ -1444,32 +1444,41 @@
     2.4        }
     2.5      }
     2.6  #ifdef ASSERT
     2.7 -  assert(st_method() == method && st.bci() == bci,
     2.8 -         "Wrong stack trace");
     2.9 -  st.next();
    2.10 -  // vframeStream::method isn't GC-safe so store off a copy
    2.11 -  // of the methodOop in case we GC.
    2.12 -  if (!st.at_end()) {
    2.13 -    st_method = st.method();
    2.14 -  }
    2.15 +    assert(st_method() == method && st.bci() == bci,
    2.16 +           "Wrong stack trace");
    2.17 +    st.next();
    2.18 +    // vframeStream::method isn't GC-safe so store off a copy
    2.19 +    // of the methodOop in case we GC.
    2.20 +    if (!st.at_end()) {
    2.21 +      st_method = st.method();
    2.22 +    }
    2.23  #endif
    2.24 +
    2.25 +    // the format of the stacktrace will be:
    2.26 +    // - 1 or more fillInStackTrace frames for the exception class (skipped)
    2.27 +    // - 0 or more <init> methods for the exception class (skipped)
    2.28 +    // - rest of the stack
    2.29 +
    2.30      if (!skip_fillInStackTrace_check) {
    2.31 -      // check "fillInStackTrace" only once, so we negate the flag
    2.32 -      // after the first time check.
    2.33 -      skip_fillInStackTrace_check = true;
    2.34 -      if (method->name() == vmSymbols::fillInStackTrace_name()) {
    2.35 +      if ((method->name() == vmSymbols::fillInStackTrace_name() ||
    2.36 +           method->name() == vmSymbols::fillInStackTrace0_name()) &&
    2.37 +          throwable->is_a(method->method_holder())) {
    2.38          continue;
    2.39        }
    2.40 +      else {
    2.41 +        skip_fillInStackTrace_check = true; // gone past them all
    2.42 +      }
    2.43      }
    2.44 -    // skip <init> methods of the exceptions klass. If there is <init> methods
    2.45 -    // that belongs to a superclass of the exception  we are going to skipping
    2.46 -    // them in stack trace. This is simlar to classic VM.
    2.47      if (!skip_throwableInit_check) {
    2.48 +      assert(skip_fillInStackTrace_check, "logic error in backtrace filtering");
    2.49 +
    2.50 +      // skip <init> methods of the exception class and superclasses
    2.51 +      // This is simlar to classic VM.
    2.52        if (method->name() == vmSymbols::object_initializer_name() &&
    2.53            throwable->is_a(method->method_holder())) {
    2.54          continue;
    2.55        } else {
    2.56 -        // if no "Throwable.init()" method found, we stop checking it next time.
    2.57 +        // there are none or we've seen them all - either way stop checking
    2.58          skip_throwableInit_check = true;
    2.59        }
    2.60      }
     3.1 --- a/src/share/vm/classfile/vmSymbols.hpp	Mon Apr 11 23:02:37 2011 -0400
     3.2 +++ b/src/share/vm/classfile/vmSymbols.hpp	Tue Apr 12 10:32:42 2011 -0400
     3.3 @@ -330,6 +330,7 @@
     3.4    template(dispatch_name,                             "dispatch")                                 \
     3.5    template(getSystemClassLoader_name,                 "getSystemClassLoader")                     \
     3.6    template(fillInStackTrace_name,                     "fillInStackTrace")                         \
     3.7 +  template(fillInStackTrace0_name,                    "fillInStackTrace0")                        \
     3.8    template(getCause_name,                             "getCause")                                 \
     3.9    template(initCause_name,                            "initCause")                                \
    3.10    template(setProperty_name,                          "setProperty")                              \

mercurial