632 // We don't attempt to become a debugger, so we only follow frames if that
633 // does not require a lookup in the unwind table, which is part of the binary
634 // file but may be unsafe to read after a fatal error. So on x86, we can
635 // only walk stack if %ebp is used as frame pointer; on ia64, it's not
636 // possible to walk C stack without having the unwind table.
637 static bool is_first_C_frame(frame *fr);
638 static frame get_sender_for_C_frame(frame *fr);
639
640 // return current frame. pc() and sp() are set to NULL on failure.
641 static frame current_frame();
642
643 static void print_hex_dump(outputStream* st, address start, address end, int unitsize);
644
645 // returns a string to describe the exception/signal;
646 // returns NULL if exception_code is not an OS exception/signal.
647 static const char* exception_name(int exception_code, char* buf, size_t buflen);
648
649 // Returns the signal number (e.g. 11) for a given signal name (SIGSEGV).
650 static int get_signal_number(const char* signal_name);
651
652 // Returns native Java library, loads if necessary
653 static void* native_java_library();
654
655 // Fills in path to jvm.dll/libjvm.so (used by the Disassembler)
656 static void jvm_path(char *buf, jint buflen);
657
658 // Returns true if we are running in a headless jre.
659 static bool is_headless_jre();
660
661 // JNI names
662 static void print_jni_name_prefix_on(outputStream* st, int args_size);
663 static void print_jni_name_suffix_on(outputStream* st, int args_size);
664
665 // Init os specific system properties values
666 static void init_system_properties_values();
667
668 // IO operations, non-JVM_ version.
669 static int stat(const char* path, struct stat* sbuf);
670 static bool dir_is_empty(const char* path);
671
|
632 // We don't attempt to become a debugger, so we only follow frames if that
633 // does not require a lookup in the unwind table, which is part of the binary
634 // file but may be unsafe to read after a fatal error. So on x86, we can
635 // only walk stack if %ebp is used as frame pointer; on ia64, it's not
636 // possible to walk C stack without having the unwind table.
637 static bool is_first_C_frame(frame *fr);
638 static frame get_sender_for_C_frame(frame *fr);
639
640 // return current frame. pc() and sp() are set to NULL on failure.
641 static frame current_frame();
642
643 static void print_hex_dump(outputStream* st, address start, address end, int unitsize);
644
645 // returns a string to describe the exception/signal;
646 // returns NULL if exception_code is not an OS exception/signal.
647 static const char* exception_name(int exception_code, char* buf, size_t buflen);
648
649 // Returns the signal number (e.g. 11) for a given signal name (SIGSEGV).
650 static int get_signal_number(const char* signal_name);
651
652 // Returns the name for a given errno (e.g. "EINVAL" for EINVAL). The returned string
653 // is a static constant and does not have to be freed, so in contrast to strerror, this
654 // function is threadsafe. For unknown errno values, "unknown" is returned.
655 static const char* errno_name(int err_no);
656
657 // Returns native Java library, loads if necessary
658 static void* native_java_library();
659
660 // Fills in path to jvm.dll/libjvm.so (used by the Disassembler)
661 static void jvm_path(char *buf, jint buflen);
662
663 // Returns true if we are running in a headless jre.
664 static bool is_headless_jre();
665
666 // JNI names
667 static void print_jni_name_prefix_on(outputStream* st, int args_size);
668 static void print_jni_name_suffix_on(outputStream* st, int args_size);
669
670 // Init os specific system properties values
671 static void init_system_properties_values();
672
673 // IO operations, non-JVM_ version.
674 static int stat(const char* path, struct stat* sbuf);
675 static bool dir_is_empty(const char* path);
676
|