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); }
protected override void XmlSerializeContent(CrashXmlPlugin.FileFormat.Document.CXmlDocumentSerializationParameters aParameters) { CXmlNode.WriteId(iRegister, aParameters.Writer); // Map the ArmRegister name onto the register names we expose via XML. In reality, the only register names // that need remapping are R13, R14 and R15. string regName = RemapRegisterName(); aParameters.Writer.WriteElementString(SegConstants.CmnName, regName); aParameters.Writer.WriteElementString(SegConstants.CmnValue, iRegister.Value.ToString("x8")); if (iRegister.Symbol != null && CXmlSymbol.IsSerializable(iRegister.Symbol)) { CXmlNode.WriteLink(iRegister.Symbol.Id, SegConstants.Symbols, aParameters.Writer); } // Write any messages CXmlSegBase.XmlSerializeMessages(aParameters, iRegister); }
protected override void XmlSerializeContent(CrashXmlPlugin.FileFormat.Document.CXmlDocumentSerializationParameters aParameters) { CXmlNode.WriteId(iStack, aParameters.Writer); if (iStack.Registers != null) { CXmlNode.WriteLink(iStack.Registers.Id, SegConstants.Registers, aParameters.Writer); } if (iStack.OwningThread != null) { CXmlNode.WriteLink(iStack.OwningThread.Id, SegConstants.Threads, aParameters.Writer); } aParameters.Writer.WriteElementString(SegConstants.CmnBase, iStack.Base.ToString("x8")); aParameters.Writer.WriteElementString(SegConstants.CmnSize, iStack.Size.ToString("x")); aParameters.Writer.WriteElementString(SegConstants.CmnRange, iStack.Range.ToString()); // Write defect hash try { MobileCrashHashBuilder hashBuilder = MobileCrashHashBuilder.New(MobileCrashHashBuilder.TConfiguration.EDefault, iStack); if (hashBuilder != null) { aParameters.Writer.WriteElementString(SegConstants.Stacks_Stack_Hash, hashBuilder.GetHash()); } // Write detailed hash hashBuilder = MobileCrashHashBuilder.New(MobileCrashHashBuilder.TConfiguration.EDetailed, iStack, MobileCrashHashBuilder.KDetailedNumberOfStackEntriesToCheckForSymbols); if (hashBuilder != null) { aParameters.Writer.WriteElementString(SegConstants.Stacks_Stack_Detailed_Hash, hashBuilder.GetHash()); } } catch (Exception) { // Could not create MobileCrashHashBuilder, ignore. } // Write any messages CXmlSegBase.XmlSerializeMessages(aParameters, iStack); }
protected override void XmlSerializeContent(CrashXmlPlugin.FileFormat.Document.CXmlDocumentSerializationParameters aParameters) { CXmlNode.WriteId(iThread, aParameters.Writer); aParameters.Writer.WriteElementString(SegConstants.CmnName, iThread.Name); aParameters.Writer.WriteElementString(SegConstants.Threads_Thread_FullName, iThread.FullName); // Parent process if (iThread.OwningProcess != null) { CXmlNode.WriteLink(iThread.OwningProcess.Id, SegConstants.Processes, aParameters.Writer); } // Thread priority if (iThread.Priority != 0) { aParameters.Writer.WriteElementString(SegConstants.CmnPriority, iThread.Priority.ToString()); } // Write any messages CXmlSegBase.XmlSerializeMessages(aParameters, iThread); }