Mercurial > hg > truffle
comparison src/share/vm/utilities/exceptions.hpp @ 16535:ada0a7729b6f
Truffle: introduce debug option to print the stack trace when transferring to the interpreter
author | Andreas Woess <andreas.woess@jku.at> |
---|---|
date | Wed, 16 Jul 2014 15:18:48 +0200 |
parents | 4ca6dc0799b6 |
children | 52b4284cb496 |
comparison
equal
deleted
inserted
replaced
16534:4aaa97f42b92 | 16535:ada0a7729b6f |
---|---|
63 protected: | 63 protected: |
64 #ifdef GRAAL | 64 #ifdef GRAAL |
65 int _pending_deoptimization; | 65 int _pending_deoptimization; |
66 oop _pending_failed_speculation; | 66 oop _pending_failed_speculation; |
67 bool _pending_monitorenter; | 67 bool _pending_monitorenter; |
68 bool _pending_transfer_to_interpreter; | |
68 #endif | 69 #endif |
69 oop _pending_exception; // Thread has gc actions. | 70 oop _pending_exception; // Thread has gc actions. |
70 const char* _exception_file; // file information for exception (debugging only) | 71 const char* _exception_file; // file information for exception (debugging only) |
71 int _exception_line; // line information for exception (debugging only) | 72 int _exception_line; // line information for exception (debugging only) |
72 friend void check_ThreadShadow(); // checks _pending_exception offset | 73 friend void check_ThreadShadow(); // checks _pending_exception offset |
98 static ByteSize pending_failed_speculation_offset() { return byte_offset_of(ThreadShadow, _pending_failed_speculation); } | 99 static ByteSize pending_failed_speculation_offset() { return byte_offset_of(ThreadShadow, _pending_failed_speculation); } |
99 | 100 |
100 void set_pending_monitorenter(bool b) { _pending_monitorenter = b; } | 101 void set_pending_monitorenter(bool b) { _pending_monitorenter = b; } |
101 void set_pending_deoptimization(int reason) { _pending_deoptimization = reason; } | 102 void set_pending_deoptimization(int reason) { _pending_deoptimization = reason; } |
102 void set_pending_failed_speculation(oop failed_speculation) { _pending_failed_speculation = failed_speculation; } | 103 void set_pending_failed_speculation(oop failed_speculation) { _pending_failed_speculation = failed_speculation; } |
104 void set_pending_transfer_to_interpreter(bool b) { _pending_transfer_to_interpreter = b; } | |
103 #endif | 105 #endif |
104 | 106 |
105 // use THROW whenever possible! | 107 // use THROW whenever possible! |
106 void set_pending_exception(oop exception, const char* file, int line); | 108 void set_pending_exception(oop exception, const char* file, int line); |
107 | 109 |
109 void clear_pending_exception(); | 111 void clear_pending_exception(); |
110 | 112 |
111 ThreadShadow() : _pending_exception(NULL), | 113 ThreadShadow() : _pending_exception(NULL), |
112 _exception_file(NULL), _exception_line(0) | 114 _exception_file(NULL), _exception_line(0) |
113 #ifdef GRAAL | 115 #ifdef GRAAL |
114 , _pending_monitorenter(false), _pending_deoptimization(-1), _pending_failed_speculation(NULL) | 116 , _pending_monitorenter(false), _pending_deoptimization(-1), _pending_failed_speculation(NULL), _pending_transfer_to_interpreter(false) |
115 #endif | 117 #endif |
116 {} | 118 {} |
117 }; | 119 }; |
118 | 120 |
119 | 121 |