summaryrefslogtreecommitdiff
path: root/runtime/debugger.h
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/debugger.h')
-rw-r--r--runtime/debugger.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/runtime/debugger.h b/runtime/debugger.h
index ec37833f6d..c3184e8374 100644
--- a/runtime/debugger.h
+++ b/runtime/debugger.h
@@ -27,6 +27,7 @@
#include <string>
#include <vector>
+#include "base/array_ref.h"
#include "class_linker.h"
#include "gc_root.h"
#include "handle.h"
@@ -52,6 +53,11 @@ class ScopedObjectAccessUnchecked;
class StackVisitor;
class Thread;
+struct DebuggerDdmCallback : public DdmCallback {
+ void DdmPublishChunk(uint32_t type, const ArrayRef<const uint8_t>& data)
+ OVERRIDE REQUIRES_SHARED(Locks::mutator_lock_);
+};
+
struct DebuggerActiveMethodInspectionCallback : public MethodInspectionCallback {
bool IsMethodBeingInspected(ArtMethod* m ATTRIBUTE_UNUSED)
OVERRIDE REQUIRES_SHARED(Locks::mutator_lock_);
@@ -647,9 +653,17 @@ class Dbg {
REQUIRES_SHARED(Locks::mutator_lock_);
static void DdmSetThreadNotification(bool enable)
REQUIRES(!Locks::thread_list_lock_);
+ static bool DdmHandleChunk(
+ JNIEnv* env,
+ uint32_t type,
+ const ArrayRef<const jbyte>& data,
+ /*out*/uint32_t* out_type,
+ /*out*/std::vector<uint8_t>* out_data);
static bool DdmHandlePacket(JDWP::Request* request, uint8_t** pReplyBuf, int* pReplyLen);
static void DdmConnected() REQUIRES_SHARED(Locks::mutator_lock_);
static void DdmDisconnected() REQUIRES_SHARED(Locks::mutator_lock_);
+ static void DdmSendChunk(uint32_t type, const ArrayRef<const uint8_t>& bytes)
+ REQUIRES_SHARED(Locks::mutator_lock_);
static void DdmSendChunk(uint32_t type, const std::vector<uint8_t>& bytes)
REQUIRES_SHARED(Locks::mutator_lock_);
static void DdmSendChunk(uint32_t type, size_t len, const uint8_t* buf)
@@ -782,6 +796,7 @@ class Dbg {
static bool gDebuggerActive;
static DebuggerActiveMethodInspectionCallback gDebugActiveCallback;
+ static DebuggerDdmCallback gDebugDdmCallback;
// Indicates whether we should drop the JDWP connection because the runtime stops or the
// debugger called VirtualMachine.Dispose.