summaryrefslogtreecommitdiff
path: root/runtime/debugger.cc
diff options
context:
space:
mode:
author Alex Light <allight@google.com> 2018-03-19 13:47:56 -0700
committer Alex Light <allight@google.com> 2018-03-28 09:46:48 -0700
commit1eeefa63b9ad8289138b83dfccda3ff38ed23fb6 (patch)
tree4fa08e1dc9dbec13d267cd5550c2c7940688020e /runtime/debugger.cc
parentd1ede32d56d2b6c95f94a8c67d8b9f309940d9de (diff)
Remove unhelpful ExceptionDescribe from DDMS error path.
If a DDMS handler threw an error or returned invalid input we would call ExceptionDescribe on the exception. This is usually not very helpful since it goes to System.err instead of logcat and can make testing difficult. This change replaces the ExceptionDescribe with a LOG(INFO). Test: ./test.py --host -j50 Bug: 70988713 Change-Id: I41e743c42e63c0dcb6d32473c31f391983819d32
Diffstat (limited to 'runtime/debugger.cc')
-rw-r--r--runtime/debugger.cc15
1 files changed, 9 insertions, 6 deletions
diff --git a/runtime/debugger.cc b/runtime/debugger.cc
index 99a4c77979..4a9449640b 100644
--- a/runtime/debugger.cc
+++ b/runtime/debugger.cc
@@ -4354,9 +4354,11 @@ bool Dbg::DdmHandleChunk(JNIEnv* env,
WellKnownClasses::org_apache_harmony_dalvik_ddmc_DdmServer_dispatch,
type, dataArray.get(), 0, data.size()));
if (env->ExceptionCheck()) {
- LOG(INFO) << StringPrintf("Exception thrown by dispatcher for 0x%08x", type);
- env->ExceptionDescribe();
- env->ExceptionClear();
+ Thread* self = Thread::Current();
+ ScopedObjectAccess soa(self);
+ LOG(INFO) << StringPrintf("Exception thrown by dispatcher for 0x%08x", type) << std::endl
+ << self->GetException()->Dump();
+ self->ClearException();
return false;
}
@@ -4400,10 +4402,11 @@ bool Dbg::DdmHandleChunk(JNIEnv* env,
reinterpret_cast<jbyte*>(out_data->data()));
if (env->ExceptionCheck()) {
+ Thread* self = Thread::Current();
+ ScopedObjectAccess soa(self);
LOG(INFO) << StringPrintf("Exception thrown when reading response data from dispatcher 0x%08x",
- type);
- env->ExceptionDescribe();
- env->ExceptionClear();
+ type) << std::endl << self->GetException()->Dump();
+ self->ClearException();
return false;
}