提交 054f5678 编写于 作者: V vladidan

Merge

......@@ -497,6 +497,9 @@ class CompilerInterfaceVC10 extends CompilerInterface {
addAttr(rv, "TargetMachine", "MachineX64");
}
// We always want the /DEBUG option to get full symbol information in the pdb files
addAttr(rv, "GenerateDebugInformation", "true");
return rv;
}
......@@ -504,8 +507,7 @@ class CompilerInterfaceVC10 extends CompilerInterface {
Vector getDebugLinkerFlags() {
Vector rv = new Vector();
// /DEBUG option
addAttr(rv, "GenerateDebugInformation", "true");
// Empty now that /DEBUG option is used by all configs
return rv;
}
......
......@@ -1453,23 +1453,32 @@ void java_lang_Throwable::fill_in_stack_trace(Handle throwable, TRAPS) {
st_method = st.method();
}
#endif
// the format of the stacktrace will be:
// - 1 or more fillInStackTrace frames for the exception class (skipped)
// - 0 or more <init> methods for the exception class (skipped)
// - rest of the stack
if (!skip_fillInStackTrace_check) {
// check "fillInStackTrace" only once, so we negate the flag
// after the first time check.
skip_fillInStackTrace_check = true;
if (method->name() == vmSymbols::fillInStackTrace_name()) {
if ((method->name() == vmSymbols::fillInStackTrace_name() ||
method->name() == vmSymbols::fillInStackTrace0_name()) &&
throwable->is_a(method->method_holder())) {
continue;
}
else {
skip_fillInStackTrace_check = true; // gone past them all
}
}
// skip <init> methods of the exceptions klass. If there is <init> methods
// that belongs to a superclass of the exception we are going to skipping
// them in stack trace. This is simlar to classic VM.
if (!skip_throwableInit_check) {
assert(skip_fillInStackTrace_check, "logic error in backtrace filtering");
// skip <init> methods of the exception class and superclasses
// This is simlar to classic VM.
if (method->name() == vmSymbols::object_initializer_name() &&
throwable->is_a(method->method_holder())) {
continue;
} else {
// if no "Throwable.init()" method found, we stop checking it next time.
// there are none or we've seen them all - either way stop checking
skip_throwableInit_check = true;
}
}
......
......@@ -330,6 +330,7 @@
template(dispatch_name, "dispatch") \
template(getSystemClassLoader_name, "getSystemClassLoader") \
template(fillInStackTrace_name, "fillInStackTrace") \
template(fillInStackTrace0_name, "fillInStackTrace0") \
template(getCause_name, "getCause") \
template(initCause_name, "initCause") \
template(setProperty_name, "setProperty") \
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册