35 int _id; // Solaris/Linux signals: 0 - SIGRTMAX |
35 int _id; // Solaris/Linux signals: 0 - SIGRTMAX |
36 // Windows exceptions: 0xCxxxxxxx system errors |
36 // Windows exceptions: 0xCxxxxxxx system errors |
37 // 0x8xxxxxxx system warnings |
37 // 0x8xxxxxxx system warnings |
38 |
38 |
39 const char * _message; |
39 const char * _message; |
|
40 const char * _detail_msg; |
40 |
41 |
41 Thread * _thread; // NULL if it's native thread |
42 Thread * _thread; // NULL if it's native thread |
42 |
43 |
43 |
44 |
44 // additional info for crashes |
45 // additional info for crashes |
73 // generate a stack trace |
74 // generate a stack trace |
74 static void print_stack_trace(outputStream* st, JavaThread* jt, |
75 static void print_stack_trace(outputStream* st, JavaThread* jt, |
75 char* buf, int buflen, bool verbose = false); |
76 char* buf, int buflen, bool verbose = false); |
76 |
77 |
77 // accessor |
78 // accessor |
78 const char* message() { return _message; } |
79 const char* message() const { return _message; } |
|
80 const char* detail_msg() const { return _detail_msg; } |
79 |
81 |
80 public: |
82 public: |
81 // Constructor for crashes |
83 // Constructor for crashes |
82 VMError(Thread* thread, int sig, address pc, void* siginfo, void* context); |
84 VMError(Thread* thread, int sig, address pc, void* siginfo, void* context); |
83 // Constructor for VM internal errors |
85 // Constructor for VM internal errors |
84 VMError(Thread* thread, const char* message, const char* filename, int lineno); |
86 VMError(Thread* thread, const char* filename, int lineno, |
|
87 const char* message, const char * detail_msg); |
85 |
88 |
86 // Constructors for VM OOM errors |
89 // Constructor for VM OOM errors |
87 VMError(Thread* thread, size_t size, const char* message, const char* filename, int lineno); |
90 VMError(Thread* thread, const char* filename, int lineno, size_t size, |
|
91 const char* message); |
88 // Constructor for non-fatal errors |
92 // Constructor for non-fatal errors |
89 VMError(const char* message); |
93 VMError(const char* message); |
90 |
94 |
91 // return a string to describe the error |
95 // return a string to describe the error |
92 char *error_string(char* buf, int buflen); |
96 char *error_string(char* buf, int buflen); |