diff options
Diffstat (limited to 'runtime/quick_exception_handler.h')
-rw-r--r-- | runtime/quick_exception_handler.h | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/runtime/quick_exception_handler.h b/runtime/quick_exception_handler.h index 2597ebd5c7..a4229b33fc 100644 --- a/runtime/quick_exception_handler.h +++ b/runtime/quick_exception_handler.h @@ -32,9 +32,6 @@ class Thread; class ThrowLocation; class ShadowFrame; -static constexpr bool kDebugExceptionDelivery = false; -static constexpr size_t kInvalidFrameId = 0xffffffff; - // Manages exception delivery for Quick backend. Not used by Portable backend. class QuickExceptionHandler { public: @@ -59,6 +56,18 @@ class QuickExceptionHandler { handler_quick_frame_pc_ = handler_quick_frame_pc; } + mirror::ArtMethod* GetHandlerMethod() const { + return handler_method_; + } + + void SetHandlerMethod(mirror::ArtMethod* handler_quick_method) { + handler_method_ = handler_quick_method; + } + + uint32_t GetHandlerDexPc() const { + return handler_dex_pc_; + } + void SetHandlerDexPc(uint32_t dex_pc) { handler_dex_pc_ = dex_pc; } @@ -81,7 +90,9 @@ class QuickExceptionHandler { StackReference<mirror::ArtMethod>* handler_quick_frame_; // PC to branch to for the handler. uintptr_t handler_quick_frame_pc_; - // Associated dex PC. + // The handler method to report to the debugger. + mirror::ArtMethod* handler_method_; + // The handler's dex PC, zero implies an uncaught exception. uint32_t handler_dex_pc_; // Should the exception be cleared as the catch block has no move-exception? bool clear_exception_; |