src/share/vm/runtime/os.hpp

Print this page
rev 2110 : [mq]: is-debugger-present


 475 
 476   // Unload library
 477   static void  dll_unload(void *lib);
 478 
 479   // Print out system information; they are called by fatal error handler.
 480   // Output format may be different on different platforms.
 481   static void print_os_info(outputStream* st);
 482   static void print_cpu_info(outputStream* st);
 483   static void print_memory_info(outputStream* st);
 484   static void print_dll_info(outputStream* st);
 485   static void print_environment_variables(outputStream* st, const char** env_list, char* buffer, int len);
 486   static void print_context(outputStream* st, void* context);
 487   static void print_register_info(outputStream* st, void* context);
 488   static void print_siginfo(outputStream* st, void* siginfo);
 489   static void print_signal_handlers(outputStream* st, char* buf, size_t buflen);
 490   static void print_date_and_time(outputStream* st);
 491 
 492   static void print_location(outputStream* st, intptr_t x, bool verbose = false);
 493   static size_t lasterror(char *buf, size_t len);
 494 






 495   // The following two functions are used by fatal error handler to trace
 496   // native (C) frames. They are not part of frame.hpp/frame.cpp because
 497   // frame.hpp/cpp assume thread is JavaThread, and also because different
 498   // OS/compiler may have different convention or provide different API to
 499   // walk C frames.
 500   //
 501   // We don't attempt to become a debugger, so we only follow frames if that
 502   // does not require a lookup in the unwind table, which is part of the binary
 503   // file but may be unsafe to read after a fatal error. So on x86, we can
 504   // only walk stack if %ebp is used as frame pointer; on ia64, it's not
 505   // possible to walk C stack without having the unwind table.
 506   static bool is_first_C_frame(frame *fr);
 507   static frame get_sender_for_C_frame(frame *fr);
 508 
 509   // return current frame. pc() and sp() are set to NULL on failure.
 510   static frame      current_frame();
 511 
 512   static void print_hex_dump(outputStream* st, address start, address end, int unitsize);
 513 
 514   // returns a string to describe the exception/signal;




 475 
 476   // Unload library
 477   static void  dll_unload(void *lib);
 478 
 479   // Print out system information; they are called by fatal error handler.
 480   // Output format may be different on different platforms.
 481   static void print_os_info(outputStream* st);
 482   static void print_cpu_info(outputStream* st);
 483   static void print_memory_info(outputStream* st);
 484   static void print_dll_info(outputStream* st);
 485   static void print_environment_variables(outputStream* st, const char** env_list, char* buffer, int len);
 486   static void print_context(outputStream* st, void* context);
 487   static void print_register_info(outputStream* st, void* context);
 488   static void print_siginfo(outputStream* st, void* siginfo);
 489   static void print_signal_handlers(outputStream* st, char* buf, size_t buflen);
 490   static void print_date_and_time(outputStream* st);
 491 
 492   static void print_location(outputStream* st, intptr_t x, bool verbose = false);
 493   static size_t lasterror(char *buf, size_t len);
 494 
 495   // Determines whether the calling process is being debugged by a user-mode debugger.
 496   static bool is_debugger_attached();
 497 
 498   // check if a debugger is attached and if so, wait for a key press
 499   static void os::check_for_debugger_and_wait(void);
 500 
 501   // The following two functions are used by fatal error handler to trace
 502   // native (C) frames. They are not part of frame.hpp/frame.cpp because
 503   // frame.hpp/cpp assume thread is JavaThread, and also because different
 504   // OS/compiler may have different convention or provide different API to
 505   // walk C frames.
 506   //
 507   // We don't attempt to become a debugger, so we only follow frames if that
 508   // does not require a lookup in the unwind table, which is part of the binary
 509   // file but may be unsafe to read after a fatal error. So on x86, we can
 510   // only walk stack if %ebp is used as frame pointer; on ia64, it's not
 511   // possible to walk C stack without having the unwind table.
 512   static bool is_first_C_frame(frame *fr);
 513   static frame get_sender_for_C_frame(frame *fr);
 514 
 515   // return current frame. pc() and sp() are set to NULL on failure.
 516   static frame      current_frame();
 517 
 518   static void print_hex_dump(outputStream* st, address start, address end, int unitsize);
 519 
 520   // returns a string to describe the exception/signal;