internal void Thread_GetFrameInfo(long id, int start_frame, int length, Action<FrameInfo[]> resultCallaback) { Send (CommandSet.THREAD, (int)CmdThread.GET_FRAME_INFO, new PacketWriter ().WriteId (id).WriteInt (start_frame).WriteInt (length), (res) => { int count = res.ReadInt (); var frames = new FrameInfo[count]; for (int i = 0; i < count; ++i) { var f = new FrameInfo (); f.id = res.ReadInt (); f.method = res.ReadId (); f.il_offset = res.ReadInt (); f.flags = (StackFrameFlags)res.ReadByte (); frames [i] = f; } resultCallaback (frames); }, 1); }
internal FrameInfo[] Thread_GetFrameInfo (long id, int start_frame, int length) { var res = SendReceive (CommandSet.THREAD, (int)CmdThread.GET_FRAME_INFO, new PacketWriter ().WriteId (id).WriteInt (start_frame).WriteInt (length)); int count = res.ReadInt (); var frames = new FrameInfo [count]; for (int i = 0; i < count; ++i) { var f = new FrameInfo (); f.id = res.ReadInt (); f.method = res.ReadId (); f.il_offset = res.ReadInt (); f.flags = (StackFrameFlags)res.ReadByte (); frames [i] = f; } return frames; }