< prev index next >

src/os/posix/vm/os_posix.cpp

Print this page




  76     switch(rlim.rlim_cur) {
  77       case RLIM_INFINITY:
  78         jio_snprintf(buffer, bufferSize, "%s", core_path);
  79         success = true;
  80         break;
  81       case 0:
  82         jio_snprintf(buffer, bufferSize, "Core dumps have been disabled. To enable core dumping, try \"ulimit -c unlimited\" before starting Java again");
  83         success = false;
  84         break;
  85       default:
  86         jio_snprintf(buffer, bufferSize, "%s (max size %lu kB). To ensure a full core dump, try \"ulimit -c unlimited\" before starting Java again", core_path, (unsigned long)(rlim.rlim_cur >> 10));
  87         success = true;
  88         break;
  89     }
  90   }
  91 
  92   VMError::record_coredump_status(buffer, success);
  93 }
  94 
  95 int os::get_native_stack(address* stack, int frames, int toSkip) {
  96 #ifdef _NMT_NOINLINE_
  97   toSkip++;
  98 #endif
  99 
 100   int frame_idx = 0;
 101   int num_of_frames;  // number of frames captured
 102   frame fr = os::current_frame();
 103   while (fr.pc() && frame_idx < frames) {
 104     if (toSkip > 0) {
 105       toSkip --;
 106     } else {
 107       stack[frame_idx ++] = fr.pc();
 108     }
 109     if (fr.fp() == NULL || fr.cb() != NULL ||
 110         fr.sender_pc() == NULL || os::is_first_C_frame(&fr)) break;
 111 
 112     if (fr.sender_pc() && !os::is_first_C_frame(&fr)) {
 113       fr = os::get_sender_for_C_frame(&fr);
 114     } else {
 115       break;
 116     }
 117   }
 118   num_of_frames = frame_idx;
 119   for (; frame_idx < frames; frame_idx ++) {




  76     switch(rlim.rlim_cur) {
  77       case RLIM_INFINITY:
  78         jio_snprintf(buffer, bufferSize, "%s", core_path);
  79         success = true;
  80         break;
  81       case 0:
  82         jio_snprintf(buffer, bufferSize, "Core dumps have been disabled. To enable core dumping, try \"ulimit -c unlimited\" before starting Java again");
  83         success = false;
  84         break;
  85       default:
  86         jio_snprintf(buffer, bufferSize, "%s (max size %lu kB). To ensure a full core dump, try \"ulimit -c unlimited\" before starting Java again", core_path, (unsigned long)(rlim.rlim_cur >> 10));
  87         success = true;
  88         break;
  89     }
  90   }
  91 
  92   VMError::record_coredump_status(buffer, success);
  93 }
  94 
  95 int os::get_native_stack(address* stack, int frames, int toSkip) {




  96   int frame_idx = 0;
  97   int num_of_frames;  // number of frames captured
  98   frame fr = os::current_frame();
  99   while (fr.pc() && frame_idx < frames) {
 100     if (toSkip > 0) {
 101       toSkip --;
 102     } else {
 103       stack[frame_idx ++] = fr.pc();
 104     }
 105     if (fr.fp() == NULL || fr.cb() != NULL ||
 106         fr.sender_pc() == NULL || os::is_first_C_frame(&fr)) break;
 107 
 108     if (fr.sender_pc() && !os::is_first_C_frame(&fr)) {
 109       fr = os::get_sender_for_C_frame(&fr);
 110     } else {
 111       break;
 112     }
 113   }
 114   num_of_frames = frame_idx;
 115   for (; frame_idx < frames; frame_idx ++) {


< prev index next >