Exemplo n.º 1
0
        private static DebugPauseInfo readDebugPauseInfo(BinaryReader rdr)
        {
            var info = new DebugPauseInfo();

            ulong numModules = rdr.ReadUInt64();

            info.modules = new DebugModuleInfo[numModules];
            for (ulong i = 0; i < numModules; ++i)
            {
                info.modules[i] = readDebugModuleInfo(rdr);
            }

            info.userModuleIdx = rdr.ReadUInt32();

            ulong numThreads = rdr.ReadUInt64();

            info.threads = new DebugThreadInfo[numThreads];
            for (ulong i = 0; i < numThreads; ++i)
            {
                info.threads[i] = readDebugThreadInfo(rdr);
            }

            ulong numSymbols = rdr.ReadUInt64();

            info.symbols = new DebugSymbolInfo[numSymbols];
            for (ulong i = 0; i < numSymbols; ++i)
            {
                info.symbols[i] = readDebugSymbolInfo(rdr);
            }

            return(info);
        }
Exemplo n.º 2
0
 public void UpdateData(DebugPauseInfo pauseInfo, DebugThreadInfo activeThread)
 {
     listBox.Items.Clear();
     if (pauseInfo != null)
     {
         var info = pauseInfo.modules;
         for (int i = 0; i < info.Length; ++i)
         {
             string lineText = String.Format("{0}  EP@{1:X8}",
                                             info[i].name,
                                             info[i].entryPoint);
             listBox.Items.Add(lineText);
         }
     }
 }
Exemplo n.º 3
0
        private void UpdatePauseInfo(DebugPauseInfo pauseInfo, uint activeCore = 1)
        {
            PauseInfo = pauseInfo;
            if (pauseInfo != null)
            {
                ActiveThread = getActiveThread(pauseInfo.threads, activeCore);
            }
            else
            {
                ActiveThread = null;
            }

            UpdatePauseInfo();
            asmView.Focus();
        }
Exemplo n.º 4
0
        public void UpdateData(DebugPauseInfo pauseInfo, DebugThreadInfo activeThread)
        {
            stackDisp.DebugManager.UpdateData(pauseInfo, activeThread);

            if (activeThread != null)
            {
                uint stackCurrent = activeThread.gpr[1];
                stackDisp.DataView      = stackDisp.DebugManager.CreateMemoryView(activeThread.stackEnd - 4, activeThread.stackStart);
                stackDisp.ActiveAddress = stackCurrent;
                stackDisp.JumpToAddress(stackCurrent);
            }
            else
            {
                stackDisp.DataView = null;
            }
        }
Exemplo n.º 5
0
        public void UpdateData(DebugPauseInfo pauseInfo, DebugThreadInfo activeThread)
        {
            memDisp.DebugManager.UpdateData(pauseInfo, activeThread);

            if (activeThread != null)
            {
                uint stackCurrent = activeThread.gpr[1];
                memDisp.DataView      = memDisp.DebugManager.CreateMemoryView(0x00000000, 0x100000000);
                memDisp.ActiveAddress = stackCurrent;
                memDisp.JumpToAddress(stackCurrent);
            }
            else
            {
                memDisp.DataView = null;
            }
        }
Exemplo n.º 6
0
        public void UpdateData(DebugPauseInfo pauseInfo, DebugThreadInfo activeThread)
        {
            listView.Items.Clear();

            if (pauseInfo != null)
            {
                var info = pauseInfo.threads;

                for (int i = 0; i < info.Length; ++i)
                {
                    ListViewItem item = new ListViewItem();

                    if (info[i] == activeThread)
                    {
                        item.Text = ">";
                    }
                    else
                    {
                        item.Text = "";
                    }

                    item.SubItems.Add(info[i].id.ToString());
                    item.SubItems.Add(info[i].name);
                    if (info[i].curCoreId >= 0)
                    {
                        item.SubItems.Add(info[i].curCoreId.ToString());
                    }
                    else
                    {
                        item.SubItems.Add("");
                    }
                    item.SubItems.Add(String.Format("{0:X8}", info[i].cia));
                    item.SubItems.Add(String.Format("{0:X8}", info[i].entryPoint));
                    item.SubItems.Add(String.Format("{0:X8}:{1:X8}",
                                                    info[i].stackStart,
                                                    info[i].stackEnd));
                    listView.Items.Add(item);
                }
            }
        }
Exemplo n.º 7
0
        public void UpdateData(DebugPauseInfo pauseInfo, DebugThreadInfo activeThread)
        {
            assemblyDisp.DebugManager.UpdateData(pauseInfo, activeThread);

            if (pauseInfo != null)
            {
                assemblyDisp.DataView = assemblyDisp.DebugManager.CreateMemoryView(0x00000000, 0x100000000);
                if (activeThread != null)
                {
                    assemblyDisp.ActiveAddress = activeThread.cia;
                }
                else
                {
                    assemblyDisp.ActiveAddress = pauseInfo.modules[pauseInfo.userModuleIdx].entryPoint;
                }
                assemblyDisp.JumpToAddress(assemblyDisp.ActiveAddress);
            }
            else
            {
                assemblyDisp.DataView = null;
            }
        }
Exemplo n.º 8
0
 public void UpdateData(DebugPauseInfo pauseInfo, DebugThreadInfo activeThread)
 {
     oldInfo = info;
     info    = activeThread;
     this.Invalidate();
 }
Exemplo n.º 9
0
 public void UpdateData(DebugPauseInfo pauseInfo, DebugThreadInfo activeThread)
 {
     _pauseInfo = pauseInfo;
 }