public long Assembly;
}
+ class FieldMirrorInfo {
+ public string Name;
+ public long Parent, TypeId;
+ public int Attrs;
+ }
+
enum TokenType {
STRING = 0,
TYPE = 1,
* with newer runtimes, and vice versa.
*/
internal const int MAJOR_VERSION = 2;
- internal const int MINOR_VERSION = 27;
+ internal const int MINOR_VERSION = 29;
enum WPSuspendPolicy {
NONE = 0,
METHOD = 22,
TYPE = 23,
MODULE = 24,
+ FIELD = 25,
EVENT = 64
}
/* FIXME: Merge into GET_INFO when the major protocol version is increased */
GET_ID = 5,
/* Ditto */
- GET_TID = 6
+ GET_TID = 6,
+ SET_IP = 7
}
enum CmdEventRequest {
IS_INITIALIZED = 18
}
+ enum CmdField {
+ GET_INFO = 1
+ }
+
[Flags]
enum BindingFlagsExtensions {
BINDING_FLAGS_IGNORE_CASE = 0x70000000,
case CommandSet.MODULE:
cmd = ((CmdModule)command).ToString ();
break;
+ case CommandSet.FIELD:
+ cmd = ((CmdField)command).ToString ();
+ break;
case CommandSet.EVENT:
cmd = ((CmdEvent)command).ToString ();
break;
return SendReceive (CommandSet.THREAD, (int)CmdThread.GET_TID, new PacketWriter ().WriteId (id)).ReadLong ();
}
+ internal void Thread_SetIP (long id, long method_id, long il_offset) {
+ SendReceive (CommandSet.THREAD, (int)CmdThread.SET_IP, new PacketWriter ().WriteId (id).WriteId (method_id).WriteLong (il_offset));
+ }
+
/*
* MODULE
*/
return r.ReadInt () == 1;
}
+ /*
+ * FIELD
+ */
+
+ internal FieldMirrorInfo Field_GetInfo (long id) {
+ PacketReader r = SendReceive (CommandSet.FIELD, (int)CmdField.GET_INFO, new PacketWriter ().WriteId (id));
+ FieldMirrorInfo info = new FieldMirrorInfo { Name = r.ReadString (), Parent = r.ReadId (), TypeId = r.ReadId (), Attrs = r.ReadInt () };
+ return info;
+ }
+
/*
* EVENTS
*/