diff options
author | Mathieu Chartier <mathieuc@google.com> | 2015-04-10 14:23:35 -0700 |
---|---|---|
committer | Mathieu Chartier <mathieuc@google.com> | 2015-04-13 16:15:22 -0700 |
commit | d3ed9a320a89cb9b91b2361892c043ab7e112717 (patch) | |
tree | 94d2b646e8ff9b28e0bef735804ce17a6a8be729 /runtime/jdwp/jdwp_handler.cc | |
parent | 4b5673b7387804947a1605a906deee132ab28f14 (diff) | |
download | android_art-d3ed9a320a89cb9b91b2361892c043ab7e112717.tar.gz android_art-d3ed9a320a89cb9b91b2361892c043ab7e112717.tar.bz2 android_art-d3ed9a320a89cb9b91b2361892c043ab7e112717.zip |
Fix DCHECK failures from Class::VisitFieldRoots
We now use GetDeclaringClassUnchecked when marking roots to fix
flaky test failures. Fixed a race condition in root marking where
we could have non zero field array length with a null pointer.
Fixed a race condition where we could be marking roots before
FixupTemporaryDeclaringClass had finished. The solution is to
only do the declaring class CHECK if we are at least resolved.
Fixed JDWP tests by changing FieldId / MethodId to be 64 bits.
Also some cleanup.
Change-Id: Ibac09519860d93c3f68a5cc964bbc91dc10a279a
Diffstat (limited to 'runtime/jdwp/jdwp_handler.cc')
-rw-r--r-- | runtime/jdwp/jdwp_handler.cc | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/runtime/jdwp/jdwp_handler.cc b/runtime/jdwp/jdwp_handler.cc index d0ca214ee4..2457f1452c 100644 --- a/runtime/jdwp/jdwp_handler.cc +++ b/runtime/jdwp/jdwp_handler.cc @@ -38,11 +38,11 @@ namespace art { namespace JDWP { std::string DescribeField(const FieldId& field_id) { - return StringPrintf("%#x (%s)", field_id, Dbg::GetFieldName(field_id).c_str()); + return StringPrintf("%#" PRIx64 " (%s)", field_id, Dbg::GetFieldName(field_id).c_str()); } std::string DescribeMethod(const MethodId& method_id) { - return StringPrintf("%#x (%s)", method_id, Dbg::GetMethodName(method_id).c_str()); + return StringPrintf("%#" PRIx64 " (%s)", method_id, Dbg::GetMethodName(method_id).c_str()); } std::string DescribeRefTypeId(const RefTypeId& ref_type_id) { @@ -101,8 +101,8 @@ static JdwpError RequestInvoke(JdwpState*, Request* request, ExpandBuf* pReply, VLOG(jdwp) << StringPrintf(" --> thread_id=%#" PRIx64 " object_id=%#" PRIx64, thread_id, object_id); - VLOG(jdwp) << StringPrintf(" class_id=%#" PRIx64 " method_id=%x %s.%s", class_id, - method_id, Dbg::GetClassName(class_id).c_str(), + VLOG(jdwp) << StringPrintf(" class_id=%#" PRIx64 " method_id=%#" PRIx64 " %s.%s", + class_id, method_id, Dbg::GetClassName(class_id).c_str(), Dbg::GetMethodName(method_id).c_str()); VLOG(jdwp) << StringPrintf(" %d args:", arg_count); @@ -256,8 +256,6 @@ static JdwpError VM_TopLevelThreadGroups(JdwpState*, Request*, ExpandBuf* pReply /* * Respond with the sizes of the basic debugger types. - * - * All IDs are 8 bytes. */ static JdwpError VM_IDSizes(JdwpState*, Request*, ExpandBuf* pReply) SHARED_LOCKS_REQUIRED(Locks::mutator_lock_) { |