summaryrefslogtreecommitdiff
path: root/src/debug/jdwp/jdwp_def.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/debug/jdwp/jdwp_def.h')
-rw-r--r--src/debug/jdwp/jdwp_def.h70
1 files changed, 67 insertions, 3 deletions
diff --git a/src/debug/jdwp/jdwp_def.h b/src/debug/jdwp/jdwp_def.h
index fc5a8fe..7f13f8c 100644
--- a/src/debug/jdwp/jdwp_def.h
+++ b/src/debug/jdwp/jdwp_def.h
@@ -2,7 +2,7 @@
/* OpenIDA - Outil d'analyse de fichiers binaires
* jdwp_def.h - transcription du protocole Java Debug Wire Protocol
*
- * Copyright (C) 2010 Cyrille Bagard
+ * Copyright (C) 2010-2012 Cyrille Bagard
*
* This file is part of OpenIDA.
*
@@ -26,6 +26,7 @@
#include <stdint.h>
+#include <sys/types.h>
@@ -72,10 +73,31 @@ typedef struct __attribute__((__packed__)) _jdwp_header
/* ---------------------------------------------------------------------------------- */
+/* CONSTANTES UTILISEES DANS JDWP */
+/* ---------------------------------------------------------------------------------- */
+
+
+/* Constantes TypeTag */
+typedef uint8_t jdwp_type_tag;
+
+#define JDWP_TYPE_TAG_CLASS 1 /* Le type est une classe */
+#define JDWP_TYPE_TAG_INTERFACE 2 /* Le type est une interface */
+#define JDWP_TYPE_TAG_ARRAY 3 /* Le type est un tableau */
+
+
+
+
+
+
+/* ---------------------------------------------------------------------------------- */
/* TYPES DE BASE DIVERS POUR JDWP */
/* ---------------------------------------------------------------------------------- */
+/* Identifiant de taille dynamique */
+typedef uint64_t jdwp_dynsized_id;
+
+
/* "string" */
@@ -89,22 +111,32 @@ typedef struct _jdwp_string
-
-
/**
* Jeux de commandes.
*/
+#define JDWP_CST_NONE 0 /* Organisation interne */
#define JDWP_CST_VIRTUAL_MACHINE 1
+#define JDWP_CST_THREAD_REFERENCE 11
/**
* Sous-commandes d'un jeu.
*/
+/* Organisation interne */
+
+#define JDWP_CMD_NONE 0
+
/* VirtualMachine Command Set */
#define JDWP_CMD_VM_VERSION 1
+#define JDWP_CMD_VM_ALL_THREADS 4
+#define JDWP_CMD_VM_ID_SIZES 7
+
+/* ThreadReference Command Set */
+
+#define JDWP_CMD_THREAD_NAME 1
/**
@@ -123,8 +155,40 @@ typedef struct _jdwp_cmd_vm_version_reply
} jdwp_cmd_vm_version_reply;
+/* JDWP_CMD_VM_ALL_THREADS */
+
+typedef struct _jdwp_cmd_vm_allthreads_reply
+{
+ uint32_t count; /* Taille de la liste */
+ jdwp_dynsized_id *threads; /* Identifiant des threads */
+
+} jdwp_cmd_vm_allthreads_reply;
+/* JDWP_CMD_VM_ID_SIZES */
+
+typedef struct _jdwp_cmd_vm_id_sizes_reply
+{
+ uint32_t field_id_size; /* taille pour un 'fieldID' */
+ uint32_t method_id_size; /* taille pour un 'methodID' */
+ uint32_t object_id_size; /* taille pour un 'objectID' */
+ uint32_t reference_type_id_size; /* taille pour un '...TypeID' */
+ uint32_t frame_id_size; /* taille pour un 'frameID' */
+
+} jdwp_cmd_vm_id_sizes_reply;
+
+/* JDWP_CMD_THREAD_NAME */
+
+typedef struct _jdwp_cmd_thread_name_request
+{
+ jdwp_dynsized_id id; /* Identifiant du thread visé */
+
+} jdwp_cmd_thread_name_request;
+
+typedef struct _jdwp_cmd_thread_name_reply
+{
+ jdwp_string name; /* Désignation humaine */
+} jdwp_cmd_thread_name_reply;