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 ++) { |