183 #define STATIC_ASSERT(Cond) \ 184 typedef char PASTE_TOKENS(STATIC_ASSERT_DUMMY_TYPE_, __LINE__)[ \ 185 STATIC_ASSERT_FAILURE< (Cond) >::value ] 186 187 // out of shared space reporting 188 enum SharedSpaceType { 189 SharedReadOnly, 190 SharedReadWrite, 191 SharedMiscData, 192 SharedMiscCode, 193 SharedOptional 194 }; 195 196 void report_out_of_shared_space(SharedSpaceType space_type); 197 198 void report_insufficient_metaspace(size_t required_size); 199 200 // out of memory reporting 201 void report_java_out_of_memory(const char* message); 202 203 // Support for self-destruct 204 bool is_error_reported(); 205 void set_error_reported(); 206 207 /* Test vmassert(), fatal(), guarantee(), etc. */ 208 NOT_PRODUCT(void test_error_handler();) 209 210 // crash in a controlled way: 211 // how can be one of: 212 // 1,2 - asserts 213 // 3,4 - guarantee 214 // 5-7 - fatal 215 // 8 - vm_exit_out_of_memory 216 // 9 - ShouldNotCallThis 217 // 10 - ShouldNotReachHere 218 // 11 - Unimplemented 219 // 12,13 - (not guaranteed) crashes 220 // 14 - SIGSEGV 221 // 15 - SIGFPE 222 NOT_PRODUCT(void controlled_crash(int how);) 223 224 // returns an address which is guaranteed to generate a SIGSEGV on read, 225 // for test purposes, which is not NULL and contains bits in every word 226 NOT_PRODUCT(void* get_segfault_address();) 227 228 class frame; 229 void pd_ps(frame f); 230 231 #endif // SHARE_VM_UTILITIES_DEBUG_HPP | 183 #define STATIC_ASSERT(Cond) \ 184 typedef char PASTE_TOKENS(STATIC_ASSERT_DUMMY_TYPE_, __LINE__)[ \ 185 STATIC_ASSERT_FAILURE< (Cond) >::value ] 186 187 // out of shared space reporting 188 enum SharedSpaceType { 189 SharedReadOnly, 190 SharedReadWrite, 191 SharedMiscData, 192 SharedMiscCode, 193 SharedOptional 194 }; 195 196 void report_out_of_shared_space(SharedSpaceType space_type); 197 198 void report_insufficient_metaspace(size_t required_size); 199 200 // out of memory reporting 201 void report_java_out_of_memory(const char* message); 202 203 #endif // SHARE_VM_UTILITIES_DEBUG_HPP |