public void SetCustomPointer(string aPrefix)
        {
            // Find any existing custom entry and remove it
            int paraCount = iPrefixEngine_Pointer.Count;

            System.Diagnostics.Debug.Assert(paraCount >= 1);
            if (paraCount > 1)
            {
                iPrefixEngine_Pointer.RemoveRange(1);
            }

            string prefixText = aPrefix.Trim();

            if (prefixText != string.Empty)
            {
                ParserParagraph para = new ParserParagraph("Dynamic_Pointer");
                //
                prefixText += "%08x";
                //
                ParserLine l1 = ParserLine.NewSymFormat(prefixText);
                l1.SetTargetProperty(iEngine.AddressInfo, "Pointer");
                para.Add(l1);
                iPrefixEngine_Pointer.Add(para);
            }
        }
Exemplo n.º 2
0
        private ParserParagraph CreateChunkMultiple(string aName, DChunk aChunk)
        {
            ParserParagraph para = new ParserParagraph(aName);
            //
            ParserLine l1 = ParserLine.NewSymFormat("Owning Process %08x OS ASIDS %08x\r\n");

            l1.SetTargetProperties(aChunk, "OwningProcessAddress", "OSAsids");
            //
            ParserLine l2 = ParserLine.NewSymFormat("Size %x, MaxSize %x, Base %08x\r\n");

            l2.SetTargetProperties(aChunk, "Size", "MaxSize", "Base");
            //
            ParserLine l3 = ParserLine.NewSymFormat("Attrib %x, StartPos %x\r\n");

            l3.SetTargetProperties(aChunk, "Attributes", "StartPos");
            //
            ParserLine l4 = ParserLine.NewSymFormat("Type %d\r\n");

            l4.SetTargetProperty(aChunk, "ChunkType");
            //
            ParserLine l5 = ParserLine.NewSymFormat("PTE: %08x, PDE: %08x\r\n");

            l5.SetTargetProperties(aChunk.Permissions, "Pte", "Pde");
            //
            ParserLine l6 = ParserLine.NewSymFormat("PageTables=%08x, PageBitMap=%08x\r\n");

            l6.SetTargetProperties(aChunk, "PageTables", "PageBitMap");

            para.Add(l1, l2, l3, l4, l5, l6);
            return(para);
        }
        private void PreparePrefixes_Pointer()
        {
            ParserParagraph para = new ParserParagraph("Fixed_Pointer");
            //
            ParserLine l1 = ParserLine.NewSymFormat("CurrentSP - 0x%08x");

            l1.SetTargetProperty(iEngine.AddressInfo, "Pointer");
            //
            ParserLine l2 = ParserLine.NewSymFormat("CurrentSP - %08x");

            l2.SetTargetProperty(iEngine.AddressInfo, "Pointer");
            //
            ParserLine l3 = ParserLine.NewSymFormat("CurrentSP: 0x%08x");

            l3.SetTargetProperty(iEngine.AddressInfo, "Pointer");
            //
            ParserLine l4 = ParserLine.NewSymFormat("CurrentSP: %08x");

            l4.SetTargetProperty(iEngine.AddressInfo, "Pointer");
            //
            ParserLine l5 = ParserLine.NewSymFormat("r12=%08x %08x %08x %08x");

            l5[1].SetTargetProperty(iEngine.AddressInfo, "Pointer");
            //
            ParserLine l6 = ParserLine.NewSymFormat("Current stack pointer: 0x%08x");

            l6.SetTargetProperty(iEngine.AddressInfo, "Pointer");
            //
            ParserLine l7 = ParserLine.NewSymFormat("sp: 0x%08x");

            l7.SetTargetProperty(iEngine.AddressInfo, "Pointer");
            //
            ParserLine l8 = ParserLine.NewSymFormat("sp: %08x");

            l8.SetTargetProperty(iEngine.AddressInfo, "Pointer");
            //
            para.Add(l1, l2, l3, l4, l5, l6, l7, l8);
            //
            iPrefixEngine_Pointer.Add(para);
        }