diff options
Diffstat (limited to 'runtime/debugger.cc')
-rw-r--r-- | runtime/debugger.cc | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/runtime/debugger.cc b/runtime/debugger.cc index 73ed590..a0cecb0 100644 --- a/runtime/debugger.cc +++ b/runtime/debugger.cc @@ -3430,6 +3430,7 @@ void Dbg::ExecuteMethod(DebugInvokeReq* pReq) { auto old_throw_method = hs.NewHandle<mirror::ArtMethod>(nullptr); auto old_exception = hs.NewHandle<mirror::Throwable>(nullptr); uint32_t old_throw_dex_pc; + bool old_exception_report_flag; { ThrowLocation old_throw_location; mirror::Throwable* old_exception_obj = soa.Self()->GetException(&old_throw_location); @@ -3437,6 +3438,7 @@ void Dbg::ExecuteMethod(DebugInvokeReq* pReq) { old_throw_method.Assign(old_throw_location.GetMethod()); old_exception.Assign(old_exception_obj); old_throw_dex_pc = old_throw_location.GetDexPc(); + old_exception_report_flag = soa.Self()->IsExceptionReportedToInstrumentation(); soa.Self()->ClearException(); } @@ -3491,6 +3493,7 @@ void Dbg::ExecuteMethod(DebugInvokeReq* pReq) { ThrowLocation gc_safe_throw_location(old_throw_this_object.Get(), old_throw_method.Get(), old_throw_dex_pc); soa.Self()->SetException(gc_safe_throw_location, old_exception.Get()); + soa.Self()->SetExceptionReportedToInstrumentation(old_exception_report_flag); } } |