Implement JDWP InvokeMethod and breakpoints on exception throwing.
Change-Id: I1142bee843104f0850fd7270752104d5d73a44f0
diff --git a/src/jdwp/jdwp_main.cc b/src/jdwp/jdwp_main.cc
index 07ffc52..98490e2 100644
--- a/src/jdwp/jdwp_main.cc
+++ b/src/jdwp/jdwp_main.cc
@@ -451,9 +451,9 @@
}
std::ostream& operator<<(std::ostream& os, const JdwpLocation& rhs) {
- // TODO: do we really want the Class* and Method* as pointers?
- os << rhs.typeTag << " " << (void*) rhs.classId << " " << (void*) rhs.methodId << " " << rhs.idx
- << " (" << Dbg::GetClassDescriptor(rhs.classId) << "." << Dbg::GetMethodName(rhs.classId, rhs.methodId) << ")";
+ os << "JdwpLocation["
+ << Dbg::GetClassDescriptor(rhs.classId) << "." << Dbg::GetMethodName(rhs.classId, rhs.methodId)
+ << "@" << rhs.idx << " " << rhs.typeTag << "]";
return os;
}
@@ -481,6 +481,17 @@
return os;
}
+std::ostream& operator<<(std::ostream& os, const JdwpTypeTag& value) {
+ switch (value) {
+ case TT_CLASS: os << "TT_CLASS"; break;
+ case TT_INTERFACE: os << "TT_INTERFACE"; break;
+ case TT_ARRAY: os << "TT_ARRAY"; break;
+ default:
+ os << "JdwpTypeTag[" << static_cast<int32_t>(value) << "]";
+ }
+ return os;
+}
+
} // namespace JDWP
} // namespace art