< prev index next >

src/share/vm/prims/jvm.cpp

Print this page




 497 JVM_END
 498 
 499 
 500 JVM_ENTRY_NO_ENV(jint, JVM_ActiveProcessorCount(void))
 501   JVMWrapper("JVM_ActiveProcessorCount");
 502   return os::active_processor_count();
 503 JVM_END
 504 
 505 
 506 
 507 // java.lang.Throwable //////////////////////////////////////////////////////
 508 
 509 
 510 JVM_ENTRY(void, JVM_FillInStackTrace(JNIEnv *env, jobject receiver))
 511   JVMWrapper("JVM_FillInStackTrace");
 512   Handle exception(thread, JNIHandles::resolve_non_null(receiver));
 513   java_lang_Throwable::fill_in_stack_trace(exception);
 514 JVM_END
 515 
 516 
 517 JVM_ENTRY(jint, JVM_GetStackTraceDepth(JNIEnv *env, jobject throwable))
 518   JVMWrapper("JVM_GetStackTraceDepth");
 519   oop exception = JNIHandles::resolve(throwable);
 520   return java_lang_Throwable::get_stack_trace_depth(exception, THREAD);
 521 JVM_END
 522 
 523 
 524 JVM_ENTRY(jobject, JVM_GetStackTraceElement(JNIEnv *env, jobject throwable, jint index))
 525   JVMWrapper("JVM_GetStackTraceElement");
 526   JvmtiVMObjectAllocEventCollector oam; // This ctor (throughout this module) may trigger a safepoint/GC
 527   oop exception = JNIHandles::resolve(throwable);
 528   oop element = java_lang_Throwable::get_stack_trace_element(exception, index, CHECK_NULL);
 529   return JNIHandles::make_local(env, element);
 530 JVM_END
 531 
 532 
 533 // java.lang.StackWalker //////////////////////////////////////////////////////
 534 
 535 
 536 JVM_ENTRY(jobject, JVM_CallStackWalk(JNIEnv *env, jobject stackStream, jlong mode,
 537                                      jint skip_frames, jint frame_count, jint start_index,
 538                                      jobjectArray classes,
 539                                      jobjectArray frames))
 540   JVMWrapper("JVM_CallStackWalk");
 541   JavaThread* jt = (JavaThread*) THREAD;
 542   if (!jt->is_Java_thread() || !jt->has_last_Java_frame()) {
 543     THROW_MSG_(vmSymbols::java_lang_InternalError(), "doStackWalk: no stack trace", NULL);
 544   }
 545 
 546   Handle stackStream_h(THREAD, JNIHandles::resolve_non_null(stackStream));
 547   objArrayOop ca = objArrayOop(JNIHandles::resolve_non_null(classes));
 548   objArrayHandle classes_array_h(THREAD, ca);
 549 




 497 JVM_END
 498 
 499 
 500 JVM_ENTRY_NO_ENV(jint, JVM_ActiveProcessorCount(void))
 501   JVMWrapper("JVM_ActiveProcessorCount");
 502   return os::active_processor_count();
 503 JVM_END
 504 
 505 
 506 
 507 // java.lang.Throwable //////////////////////////////////////////////////////
 508 
 509 
 510 JVM_ENTRY(void, JVM_FillInStackTrace(JNIEnv *env, jobject receiver))
 511   JVMWrapper("JVM_FillInStackTrace");
 512   Handle exception(thread, JNIHandles::resolve_non_null(receiver));
 513   java_lang_Throwable::fill_in_stack_trace(exception);
 514 JVM_END
 515 
 516 
 517 JVM_ENTRY(void, JVM_GetStackTraceElements(JNIEnv *env, jobject throwable, jobjectArray stackTrace))
 518   JVMWrapper("JVM_GetStackTraceElements");
 519   Handle exception(THREAD, JNIHandles::resolve(throwable));
 520   objArrayOop st = objArrayOop(JNIHandles::resolve(stackTrace));
 521   objArrayHandle stack_trace(THREAD, st);
 522   // Fill in the allocated stack trace
 523   java_lang_Throwable::get_stack_trace_elements(exception, stack_trace, CHECK);






 524 JVM_END
 525 
 526 
 527 // java.lang.StackWalker //////////////////////////////////////////////////////
 528 
 529 
 530 JVM_ENTRY(jobject, JVM_CallStackWalk(JNIEnv *env, jobject stackStream, jlong mode,
 531                                      jint skip_frames, jint frame_count, jint start_index,
 532                                      jobjectArray classes,
 533                                      jobjectArray frames))
 534   JVMWrapper("JVM_CallStackWalk");
 535   JavaThread* jt = (JavaThread*) THREAD;
 536   if (!jt->is_Java_thread() || !jt->has_last_Java_frame()) {
 537     THROW_MSG_(vmSymbols::java_lang_InternalError(), "doStackWalk: no stack trace", NULL);
 538   }
 539 
 540   Handle stackStream_h(THREAD, JNIHandles::resolve_non_null(stackStream));
 541   objArrayOop ca = objArrayOop(JNIHandles::resolve_non_null(classes));
 542   objArrayHandle classes_array_h(THREAD, ca);
 543 


< prev index next >