protected override void XmlSerializeChildren(CrashXmlPlugin.FileFormat.Document.CXmlDocumentSerializationParameters aParameters)
        {
            aParameters.Writer.WriteStartElement(SegConstants.CmnAttributes);
            //
            CodeSegDefinition codeSegDef = (CodeSegDefinition)iCodeSeg;

            if ((codeSegDef.Attributes & CodeSegDefinition.TAttributes.EAttributeXIP) == CodeSegDefinition.TAttributes.EAttributeXIP)
            {
                aParameters.Writer.WriteElementString(SegConstants.CmnXIP, string.Empty);
            }
            else if ((codeSegDef.Attributes & CodeSegDefinition.TAttributes.EAttributeRAM) == CodeSegDefinition.TAttributes.EAttributeRAM)
            {
                aParameters.Writer.WriteElementString(SegConstants.CmnRAM, string.Empty);
            }
            if (!iCodeSeg.IsResolved)
            {
                aParameters.Writer.WriteElementString(SegConstants.CodeSegs_CodeSeg_Attributes_NoSymbols, string.Empty);
            }
            if (iCodeSeg.IsSpeculative)
            {
                aParameters.Writer.WriteElementString(SegConstants.CodeSegs_CodeSeg_Attributes_Speculative, string.Empty);
            }
            if (iCodeSeg.IsMismatched)
            {
                aParameters.Writer.WriteElementString(SegConstants.CodeSegs_CodeSeg_Attributes_Mismatch, string.Empty);
            }
            //
            aParameters.Writer.WriteEndElement();
        }
 protected override void XmlSerializeChildren(CrashXmlPlugin.FileFormat.Document.CXmlDocumentSerializationParameters aParameters)
 {
     foreach (string line in iMessage)
     {
         aParameters.Writer.WriteElementString(SegConstants.Messages_Message_Line, line);
     }
 }
Exemple #3
0
        protected override void XmlSerializeContent(CrashXmlPlugin.FileFormat.Document.CXmlDocumentSerializationParameters aParameters)
        {
            CIInfoHW info = (CIInfoHW)aParameters.Container.ChildByType(typeof(CIInfoHW));

            if (info != null)
            {
                // Product type
                string productType = info.ProductType;
                WriteStringIfNotEmpty(aParameters.Writer, SegConstants.HWInfo_ProductType, productType);

                // Product code
                string productCode = info.ProductCode;
                WriteStringIfNotEmpty(aParameters.Writer, SegConstants.HWInfo_ProductCode, productCode);

                // Serial number
                string serialNumber = info.SerialNumber;
                WriteStringIfNotEmpty(aParameters.Writer, SegConstants.HWInfo_SerialNumber, serialNumber);

                // Crash source
                if (info.ProductionMode == 1)
                {
                    aParameters.Writer.WriteElementString(SegConstants.HWInfo_ProductionMode, SegConstants.HWInfo_ProductionMode_Prd);
                }
                else if (info.ProductionMode == 0)
                {
                    aParameters.Writer.WriteElementString(SegConstants.HWInfo_ProductionMode, SegConstants.HWInfo_ProductionMode_RnD);
                }
            }
        }
        protected override void XmlSerializeContent(CrashXmlPlugin.FileFormat.Document.CXmlDocumentSerializationParameters aParameters)
        {
            CXmlNode.WriteId(iProcess, aParameters.Writer);
            aParameters.Writer.WriteElementString(SegConstants.CmnName, iProcess.Name);

            // UIDs
            if (iProcess.Uids[0] != 0)
            {
                aParameters.Writer.WriteElementString(SegConstants.Processes_Process_UID1, iProcess.Uids[0].ToString("x8"));
            }
            if (iProcess.Uids[1] != 0)
            {
                aParameters.Writer.WriteElementString(SegConstants.Processes_Process_UID2, iProcess.Uids[1].ToString("x8"));
            }
            if (iProcess.Uids[2] != 0)
            {
                aParameters.Writer.WriteElementString(SegConstants.Processes_Process_UID3, iProcess.Uids[2].ToString("x8"));
            }

            // SID
            if (iProcess.SID != 0)
            {
                aParameters.Writer.WriteElementString(SegConstants.Processes_Process_SID, iProcess.SID.ToString("x8"));
            }

            // Generation
            aParameters.Writer.WriteElementString(SegConstants.Processes_Process_Generation, iProcess.Generation.ToString());

            // Priority
            if (iProcess.Priority != 0)
            {
                aParameters.Writer.WriteElementString(SegConstants.CmnPriority, iProcess.Priority.ToString());
            }
        }
Exemple #5
0
        protected override void XmlSerializeContent(CrashXmlPlugin.FileFormat.Document.CXmlDocumentSerializationParameters aParameters)
        {
            CISource source = aParameters.Container.Source;

            // File type
            string fileType = source.ImplementorName;

            aParameters.Writer.WriteElementString(Constants.SourceInfo_FileType, fileType);

            // Version
            CXmlVersionExtended version = new CXmlVersionExtended(source.ImplementorVersion);

            version.XmlSerialize(aParameters);

            // Source file (master file)
            string masterFileName = source.MasterFileName;

            aParameters.Writer.WriteElementString(Constants.SourceInfo_MasterFile, masterFileName);

            // Line number (if relevant)
            if (source.IsLineNumberAvailable)
            {
                aParameters.Writer.WriteElementString(Constants.SourceInfo_LineNumber, source.LineNumber.ToString());
            }
        }
Exemple #6
0
        protected override void XmlSerializeContent(CrashXmlPlugin.FileFormat.Document.CXmlDocumentSerializationParameters aParameters)
        {
            CXmlVersionExtended version = new CXmlVersionExtended(Constants.MasterFileFormatVersionMajor,
                                                                  Constants.MasterFileFormatVersionMinor);

            version.XmlSerialize(aParameters);
        }
Exemple #7
0
        protected override void XmlSerializeContent(CrashXmlPlugin.FileFormat.Document.CXmlDocumentSerializationParameters aParameters)
        {
            if (!iEntry.IsRegisterBasedEntry)
            {
                aParameters.Writer.WriteElementString(SegConstants.CmnAddress, iEntry.Address.ToString("x8"));
            }
            //
            aParameters.Writer.WriteElementString(SegConstants.CmnValue, iEntry.Data.ToString("x8"));
            aParameters.Writer.WriteElementString(SegConstants.CmnText, iEntry.DataAsString);
            if (iEntry.FunctionOffset != 0)
            {
                aParameters.Writer.WriteElementString(SegConstants.Stacks_Stack_Data_Offset, iEntry.FunctionOffset.ToString("x4"));
            }
            //
            if (iEntry.IsRegisterBasedEntry)
            {
                // Get the corresponding register from the stack
                CIStack    stack    = iEntry.Stack;
                CIRegister register = iEntry.Register;
                if (register != null)
                {
                    CXmlNode.WriteLink(register.Id, SegConstants.Registers, aParameters.Writer);
                }
            }

            if (iEntry.Symbol != null)
            {
                CXmlNode.WriteLink(iEntry.Symbol.Id, SegConstants.Symbols, aParameters.Writer);
            }
        }
Exemple #8
0
        protected override void XmlSerializeContent(CrashXmlPlugin.FileFormat.Document.CXmlDocumentSerializationParameters aParameters)
        {
            CIInfoSW info = (CIInfoSW)aParameters.Container.ChildByType(typeof(CIInfoSW));

            if (info != null)
            {
                // Checksum
                if (info.ImageCheckSum != 0)
                {
                    aParameters.Writer.WriteElementString(SegConstants.CmnChecksum, info.ImageCheckSum.ToString("x8"));
                }

                // Date and time
                CXmlNode.WriteDate(aParameters.Writer, info.ImageTimeStamp, SegConstants.CmnDate);
                CXmlNode.WriteTime(aParameters.Writer, info.ImageTimeStamp, SegConstants.CmnTime);

                // Platform
                string platform = info.Platform;
                WriteStringIfNotEmpty(aParameters.Writer, SegConstants.SWInfo_Platform, platform);

                // Language
                string language = info.Language;
                WriteStringIfNotEmpty(aParameters.Writer, SegConstants.SWInfo_Language, language);
            }
        }
        private void XmlSerializeRegisters(CrashXmlPlugin.FileFormat.Document.CXmlDocumentSerializationParameters aParameters)
        {
            // Must obtain the registers in advance to avoid creating an empty list.
            List <CIRegisterList> regs = new List <CIRegisterList>();

            // Find register lists
            CIElementList <CIRegisterListCollection> allRegs = iThread.ChildrenByType <CIRegisterListCollection>();

            foreach (CIRegisterListCollection registerListCol in allRegs)
            {
                foreach (CIRegisterList registerList in registerListCol)
                {
                    if (registerList.Count > 0)
                    {
                        regs.Add(registerList);
                    }
                }
            }

            // Only write something if we have some entries
            if (regs.Count > 0)
            {
                CXmlNode.WriteLinkListStart(aParameters.Writer, SegConstants.Registers);
                foreach (CIRegisterList registerList in regs)
                {
                    CXmlNode.WriteLink(registerList.Id, SegConstants.Registers, aParameters.Writer);
                }
                CXmlNode.WriteLinkListEnd(aParameters.Writer);
            }
        }
Exemple #10
0
 protected override void XmlSerializeChildren(CrashXmlPlugin.FileFormat.Document.CXmlDocumentSerializationParameters aParameters)
 {
     foreach (KeyValuePair <CIElementId, CISymbol> kvp in iSymbols)
     {
         CXmlSymbol xmlSymbol = new CXmlSymbol(kvp.Value);
         xmlSymbol.XmlSerialize(aParameters);
     }
 }
 public override void XmlSerialize(CrashXmlPlugin.FileFormat.Document.CXmlDocumentSerializationParameters aParameters)
 {
     // Don't write symbols or stack if we were asked to create the summary file.
     if (aParameters.DetailLevel == CrashItemLib.Sink.CISinkSerializationParameters.TDetailLevel.EFull)
     {
         base.XmlSerialize(aParameters);
     }
 }
 protected override void XmlSerializeChildren(CrashXmlPlugin.FileFormat.Document.CXmlDocumentSerializationParameters aParameters)
 {
     foreach (CIMessage message in iMessages)
     {
         CXmlMessage xmlMessage = new CXmlMessage(message);
         xmlMessage.XmlSerialize(aParameters);
     }
 }
 public override void XmlSerialize(CrashXmlPlugin.FileFormat.Document.CXmlDocumentSerializationParameters aParameters)
 {
     iMessages = aParameters.Container.ChildrenByType <CIMessage>(CIElement.TChildSearchType.EEntireHierarchy);
     if (iMessages.Count > 0)
     {
         base.XmlSerialize(aParameters);
     }
 }
        public override void XmlSerialize(CrashXmlPlugin.FileFormat.Document.CXmlDocumentSerializationParameters aParameters)
        {
            CIEventList events = aParameters.Container.Events;

            if (events.Count > 0)
            {
                base.XmlSerialize(aParameters);
            }
        }
Exemple #15
0
        protected override void XmlSerializeChildren(CrashXmlPlugin.FileFormat.Document.CXmlDocumentSerializationParameters aParameters)
        {
            CIElementList <CIRegisterVisualization> visList = iRegister.ChildrenByType <CIRegisterVisualization>();

            foreach (CIRegisterVisualization vis in visList)
            {
                CXmlNode.WriteLink(vis.Id, SegConstants.ValueInterpretation, aParameters.Writer);
            }
        }
Exemple #16
0
        public override void XmlSerialize(CrashXmlPlugin.FileFormat.Document.CXmlDocumentSerializationParameters aParameters)
        {
            CITelephony info = (CITelephony)aParameters.Container.ChildByType(typeof(CITelephony));

            if (info != null)
            {
                base.XmlSerialize(aParameters);
            }
        }
        protected override void XmlSerializeChildren(CrashXmlPlugin.FileFormat.Document.CXmlDocumentSerializationParameters aParameters)
        {
            CIEventList events = aParameters.Container.Events;

            foreach (CIEvent e in events)
            {
                CXmlEvent xmlEvent = new CXmlEvent(e);
                xmlEvent.XmlSerialize(aParameters);
            }
        }
 protected override void XmlSerializeChildren(CrashXmlPlugin.FileFormat.Document.CXmlDocumentSerializationParameters aParameters)
 {
     System.Diagnostics.Debug.Assert(iList != null);
     //
     foreach (CIBinaryData blob in iList)
     {
         CXmlBlob xmlBlob = new CXmlBlob(blob);
         xmlBlob.XmlSerialize(aParameters);
     }
 }
        protected override void XmlSerializeChildren(CrashXmlPlugin.FileFormat.Document.CXmlDocumentSerializationParameters aParameters)
        {
            CIElementList <CIProcess> processes = aParameters.Container.ChildrenByType <CIProcess>(CIElement.TChildSearchType.EEntireHierarchy);

            foreach (CIProcess process in processes)
            {
                CXmlProcess xmlProcess = new CXmlProcess(process);
                xmlProcess.XmlSerialize(aParameters);
            }
        }
        protected override void XmlSerializeChildren(CrashXmlPlugin.FileFormat.Document.CXmlDocumentSerializationParameters aParameters)
        {
            CIElementList <CIThread> threads = aParameters.Container.ChildrenByType <CIThread>(CIElement.TChildSearchType.EEntireHierarchy);

            foreach (CIThread thread in threads)
            {
                CXmlThread xmlThread = new CXmlThread(thread);
                xmlThread.XmlSerialize(aParameters);
            }
        }
        protected override void XmlSerializeChildren(CrashXmlPlugin.FileFormat.Document.CXmlDocumentSerializationParameters aParameters)
        {
            CIElementList <CIRegisterVisualization> visList = aParameters.Container.ChildrenByType <CIRegisterVisualization>(CIElement.TChildSearchType.EEntireHierarchy);

            foreach (CIRegisterVisualization visualisation in visList)
            {
                CXmlValueInterpretation xmlVis = new CXmlValueInterpretation(visualisation);
                xmlVis.XmlSerialize(aParameters);
            }
        }
        protected override void XmlSerializeChildren(CrashXmlPlugin.FileFormat.Document.CXmlDocumentSerializationParameters aParameters)
        {
            CIElementList <CIStack> stacks = aParameters.Container.ChildrenByType <CIStack>(CIElement.TChildSearchType.EEntireHierarchy);

            foreach (CIStack stack in stacks)
            {
                CXmlStack xmlStack = new CXmlStack(stack);
                xmlStack.XmlSerialize(aParameters);
            }
        }
Exemple #23
0
 public override void XmlSerialize(CrashXmlPlugin.FileFormat.Document.CXmlDocumentSerializationParameters aParameters)
 {
     iTraceData = aParameters.Container.Traces;
     //
     if (iTraceData != null && iTraceData.Lines.Length > 0)
     {
         base.XmlSerialize(aParameters);
     }
     //
     iTraceData = null;
 }
 public override void XmlSerialize(CrashXmlPlugin.FileFormat.Document.CXmlDocumentSerializationParameters aParameters)
 {
     iList = aParameters.Container.ChildrenByType <CIMemoryInfo>(CIElement.TChildSearchType.EEntireHierarchy);
     //
     if (iList != null && iList.Count > 0)
     {
         base.XmlSerialize(aParameters);
     }
     //
     iList = null;
 }
        protected override void XmlSerializeChildren(CrashXmlPlugin.FileFormat.Document.CXmlDocumentSerializationParameters aParameters)
        {
            // Exit info
            CXmlExitInfo xmlExitInfo = new CXmlExitInfo(iThread.ExitInfo);

            xmlExitInfo.XmlSerialize(aParameters);

            // Stacks
            XmlSerializeStacks(aParameters);

            // Registers
            XmlSerializeRegisters(aParameters);
        }
Exemple #26
0
        protected override void XmlSerializeChildren(CrashXmlPlugin.FileFormat.Document.CXmlDocumentSerializationParameters aParameters)
        {
            aParameters.Writer.WriteStartElement(SegConstants.BinaryData_Blob_Payload);

            // Convert blob to bytequeue.
            DataBuffer buffer = iBinaryData.DataBuffer;

            string[] lines = Utilities.ConvertBinaryDataToText(buffer, Constants.KBinaryDataMaxLineLength);
            foreach (string line in lines)
            {
                WriteLineOfData(aParameters.Writer, line);
            }

            aParameters.Writer.WriteEndElement();
        }
 protected override void XmlSerializeChildren(CrashXmlPlugin.FileFormat.Document.CXmlDocumentSerializationParameters aParameters)
 {
     System.Diagnostics.Debug.Assert(iList != null);
     foreach (CIMemoryInfo info in iList)
     {
         string name = SegConstants.MemoryInfo_Drive;
         if (info.Type == CIMemoryInfo.TType.ETypeRAM)
         {
             name = SegConstants.MemoryInfo_RAM;
         }
         //
         CXmlMemoryInfo xmlInfo = new CXmlMemoryInfo(info, name);
         xmlInfo.XmlSerialize(aParameters);
     }
 }
        protected override void XmlSerializeChildren(CrashXmlPlugin.FileFormat.Document.CXmlDocumentSerializationParameters aParameters)
        {
            if (iList.IsCurrentProcessorMode)
            {
                aParameters.Writer.WriteStartElement(SegConstants.CmnAttributes);
                aParameters.Writer.WriteElementString(SegConstants.Registers_RegisterSet_CurrentBank, string.Empty);
                aParameters.Writer.WriteEndElement();
            }

            foreach (CIRegister register in iList)
            {
                CXmlRegister xmlRegister = new CXmlRegister(register);
                xmlRegister.XmlSerialize(aParameters);
            }
        }
Exemple #29
0
        protected override void XmlSerializeContent(CrashXmlPlugin.FileFormat.Document.CXmlDocumentSerializationParameters aParameters)
        {
            CITelephony info = (CITelephony)aParameters.Container.ChildByType(typeof(CITelephony));

            if (info != null)
            {
                string phoneNumber = info.PhoneNumber;
                WriteStringIfNotEmpty(aParameters.Writer, SegConstants.Telephony_PhoneNumber, phoneNumber);

                string imei = info.IMEI;
                WriteStringIfNotEmpty(aParameters.Writer, SegConstants.Telephony_Imei, imei);

                string imsi = info.IMSI;
                WriteStringIfNotEmpty(aParameters.Writer, SegConstants.Telephony_Imsi, imsi);
            }
        }
        protected override void XmlSerializeContent(CrashXmlPlugin.FileFormat.Document.CXmlDocumentSerializationParameters aParameters)
        {
            CXmlNode.WriteId(iCodeSeg, aParameters.Writer);
            aParameters.Writer.WriteElementString(SegConstants.CmnName, iCodeSeg.Name);
            aParameters.Writer.WriteElementString(SegConstants.CmnBase, iCodeSeg.Base.ToString("x8"));
            aParameters.Writer.WriteElementString(SegConstants.CmnSize, iCodeSeg.Size.ToString("x8"));
            aParameters.Writer.WriteElementString(SegConstants.CmnRange, iCodeSeg.Range.ToString());

            if (iCodeSeg.Checksum != 0)
            {
                aParameters.Writer.WriteElementString(SegConstants.CmnChecksum, iCodeSeg.Checksum.ToString("x8"));
            }

            // Write any messages
            CXmlSegBase.XmlSerializeMessages(aParameters, iCodeSeg);
        }