Пример #1
0
        public static long[] GetThreadRegisters64(int n)
        {
            long[]          result = new long[33];
            IXboxThread     thread = jtag.DebugTarget.Threads[n];
            IXboxStackFrame frame  = thread.TopOfStack;

            frame.FlushRegisterChanges();
            for (int i = 0; i < 33; i++)
            {
                frame.GetRegister64((XboxRegisters64)i, out result[i]);
            }
            return(result);
        }
Пример #2
0
        public static int[] GetThreadRegisters32(int n)
        {
            int[]           result = new int[5];
            IXboxThread     thread = jtag.DebugTarget.Threads[n];
            IXboxStackFrame frame  = thread.TopOfStack;

            frame.FlushRegisterChanges();
            for (int i = 0; i < 5; i++)
            {
                frame.GetRegister32((XboxRegisters32)i, out result[i]);
            }
            return(result);
        }
Пример #3
0
        public static string GetThreadInfo(int n)
        {
            StringBuilder result = new StringBuilder();

            try
            {
                IXboxThread thread = jtag.DebugTarget.Threads[n];
                result.AppendLine("ID\t\t: 0x" + thread.ThreadId.ToString("X8"));
                result.AppendLine("Processor\t: " + thread.CurrentProcessor);
                result.AppendLine("Suspend Count\t: 0x" + thread.ThreadInfo.SuspendCount);
            }
            catch { }
            return(result.ToString());
        }