< prev index next >

src/os/posix/vm/os_posix.cpp

Print this page




  64       case 0:
  65         jio_snprintf(buffer, bufferSize, "Core dumps have been disabled. To enable core dumping, try \"ulimit -c unlimited\" before starting Java again");
  66         success = false;
  67         break;
  68       default:
  69         jio_snprintf(buffer + n, bufferSize - n, "/core or core.%d (max size %lu kB). To ensure a full core dump, try \"ulimit -c unlimited\" before starting Java again", current_process_id(), (unsigned long)(rlim.rlim_cur >> 10));
  70         success = true;
  71         break;
  72     }
  73   }
  74   VMError::report_coredump_status(buffer, success);
  75 }
  76 
  77 int os::get_native_stack(address* stack, int frames, int toSkip) {
  78 #ifdef _NMT_NOINLINE_
  79   toSkip++;
  80 #endif
  81 
  82   int frame_idx = 0;
  83   int num_of_frames;  // number of frames captured

  84   frame fr = os::current_frame();
  85   while (fr.pc() && frame_idx < frames) {
  86     if (toSkip > 0) {
  87       toSkip --;
  88     } else {
  89       stack[frame_idx ++] = fr.pc();
  90     }
  91     if (fr.fp() == NULL || os::is_first_C_frame(&fr)
  92         ||fr.sender_pc() == NULL || fr.cb() != NULL) break;
  93 
  94     if (fr.sender_pc() && !os::is_first_C_frame(&fr)) {
  95       fr = os::get_sender_for_C_frame(&fr);
  96     } else {
  97       break;
  98     }
  99   }
 100   num_of_frames = frame_idx;
 101   for (; frame_idx < frames; frame_idx ++) {
 102     stack[frame_idx] = NULL;
 103   }
 104 
 105   return num_of_frames;
 106 }
 107 
 108 
 109 bool os::unsetenv(const char* name) {
 110   assert(name != NULL, "Null pointer");
 111   return (::unsetenv(name) == 0);
 112 }
 113 
 114 int os::get_last_error() {
 115   return errno;




  64       case 0:
  65         jio_snprintf(buffer, bufferSize, "Core dumps have been disabled. To enable core dumping, try \"ulimit -c unlimited\" before starting Java again");
  66         success = false;
  67         break;
  68       default:
  69         jio_snprintf(buffer + n, bufferSize - n, "/core or core.%d (max size %lu kB). To ensure a full core dump, try \"ulimit -c unlimited\" before starting Java again", current_process_id(), (unsigned long)(rlim.rlim_cur >> 10));
  70         success = true;
  71         break;
  72     }
  73   }
  74   VMError::report_coredump_status(buffer, success);
  75 }
  76 
  77 int os::get_native_stack(address* stack, int frames, int toSkip) {
  78 #ifdef _NMT_NOINLINE_
  79   toSkip++;
  80 #endif
  81 
  82   int frame_idx = 0;
  83   int num_of_frames;  // number of frames captured
  84   Thread* thread = Thread::current();
  85   frame fr = os::current_frame();
  86   while (fr.pc() && frame_idx < frames) {
  87     if (toSkip > 0) {
  88       toSkip --;
  89     } else {
  90       stack[frame_idx ++] = fr.pc();
  91     }
  92     if (fr.fp() == NULL || os::is_first_C_frame(&fr)
  93         ||fr.sender_pc() == NULL || fr.cb() != NULL) break;
  94 
  95     if (fr.sender_pc() && !os::is_first_C_frame(&fr)) {
  96       fr = os::get_sender_for_C_frame(thread, &fr);
  97     } else {
  98       break;
  99     }
 100   }
 101   num_of_frames = frame_idx;
 102   for (; frame_idx < frames; frame_idx ++) {
 103     stack[frame_idx] = NULL;
 104   }
 105 
 106   return num_of_frames;
 107 }
 108 
 109 
 110 bool os::unsetenv(const char* name) {
 111   assert(name != NULL, "Null pointer");
 112   return (::unsetenv(name) == 0);
 113 }
 114 
 115 int os::get_last_error() {
 116   return errno;


< prev index next >