internal void WriteDetailedCrashHash(System.IO.StreamWriter aOutput) { if (string.IsNullOrEmpty(iDetailedHash) == false) { aOutput.Write(CCrashInfoFileUtilities.MakeOutputTags(iDetailedHash, CrashInfoConsts.Kcrash_detailedhash)); } }
/** Return the parameter string enclosed in crashinfofile identifier tags */ public static string MakeOutputTags(string aContent, string aTagText) { string output = CCrashInfoFileUtilities.BlockStartMarker(aTagText); output += aContent; output += CCrashInfoFileUtilities.BlockEndMarker(aTagText); return(output); }
//This is the phone number internal void WriteReporter(System.IO.StreamWriter aOutput) { //Dummy value needs to be written for first part aOutput.Write(CCrashInfoFileUtilities.BlockStartMarker(CrashInfoConsts.Kreporter)); aOutput.Write("NotFound"); aOutput.Write(CrashInfoConsts.KSeparator); aOutput.Write(iPhoneNumber); aOutput.Write(CCrashInfoFileUtilities.BlockEndMarker(CrashInfoConsts.Kreporter)); }
internal void WriteFileType(System.IO.StreamWriter aOutput) { int type = 0; //default type 0 if (iReportType != string.Empty) { type = 1; //for reports, type 1 } CCrashInfoFileUtilities.WriteOutputTags(type, CrashInfoConsts.Kfile_type, aOutput); }
public void ReadRegisterData(CIRegisterList aRegList) { //If long enough reglist starts with R0, it is assumed to be the "basic" register list (R0-R15) if (aRegList.Count > 15 && aRegList[0].Type == SymbianStructuresLib.Arm.Registers.TArmRegisterType.EArmReg_00) { iBasicRegs.Name = aRegList.Name; foreach (CIRegister register in aRegList) { string regName = GetRegisterName(register); CCrasInfoRegisterItem regItem = new CCrasInfoRegisterItem(regName, register.Value); if (register.Symbol != null && CCrashInfoFileUtilities.IsSymbolSerializable(register.Symbol)) { regItem.Symbol = register.Symbol.Name; } iBasicRegs.Registers.Add(regItem); //Check if this is PC and save it separately if (register.Type == SymbianStructuresLib.Arm.Registers.TArmRegisterType.EArmReg_PC) { iProgramCounter.Value = register.Value; iProgramCounter.Symbol = register.Symbol.Name; } } } else //all other registers as their own list { CCrashInfoRegisterList regs = new CCrashInfoRegisterList(); regs.Name = aRegList.Name; bool hasRealData = false; foreach (CIRegister register in aRegList) { string regName = GetRegisterName(register); CCrasInfoRegisterItem regItem = new CCrasInfoRegisterItem(regName, register.Value); if (register.Symbol != null && CCrashInfoFileUtilities.IsSymbolSerializable(register.Symbol)) { regItem.Symbol = register.Symbol.Name; } regs.Registers.Add(regItem); if (register.Value != 0) { hasRealData = true; } } if (hasRealData) { iOtherRegLists.Add(regs); } } }
internal void WriteCrashSource(System.IO.StreamWriter aOutput) { if (iCrashSource == 1) { CCrashInfoFileUtilities.WriteOutputTags(CrashInfoConsts.Kcrash_source_user, CrashInfoConsts.Kcrash_source, aOutput); } else if (iCrashSource == 0) { CCrashInfoFileUtilities.WriteOutputTags(CrashInfoConsts.Kcrash_source_kernel, CrashInfoConsts.Kcrash_source, aOutput); } }
internal void WriteProductionMode(System.IO.StreamWriter aOutput) { if (iProductionMode == 1) { CCrashInfoFileUtilities.WriteOutputTags(CrashInfoConsts.Kproduction_mode_value, CrashInfoConsts.Kproduction_mode, aOutput); } else if (iProductionMode == 0) { CCrashInfoFileUtilities.WriteOutputTags(CrashInfoConsts.Krnd_mode_value, CrashInfoConsts.Kproduction_mode, aOutput); } }
internal void WriteEventlog(System.IO.StreamWriter aOutput) { if (iEventlog.Count > 0) { aOutput.Write(CCrashInfoFileUtilities.BlockStartMarker(CrashInfoConsts.Keventlog)); foreach (string line in iEventlog) { aOutput.Write(line + CrashInfoConsts.KEOL); } aOutput.Write(CCrashInfoFileUtilities.BlockEndMarker(CrashInfoConsts.Keventlog)); } }
internal void WriteOstTraces(System.IO.StreamWriter aOutput) { if (iOstTraces.Count > 0) { aOutput.Write(CCrashInfoFileUtilities.BlockStartMarker(CrashInfoConsts.Ktrace_data)); foreach (string line in iOstTraces) { aOutput.Write(line + CrashInfoConsts.KEOL); } aOutput.Write(CCrashInfoFileUtilities.BlockEndMarker(CrashInfoConsts.Ktrace_data)); } }
internal void WriteSymbolFileNames(System.IO.StreamWriter aOutput) { string symbolfilenames = string.Empty; foreach (string fileName in iSymbolFiles) { if (symbolfilenames != string.Empty) { symbolfilenames = symbolfilenames + ", "; } symbolfilenames = symbolfilenames + Path.GetFileName(fileName); } CCrashInfoFileUtilities.WriteOutputTags(symbolfilenames, CrashInfoConsts.Ksymbolfile_names, aOutput); }
internal void WriteMiscInfo(System.IO.StreamWriter aOutput) { //Dummy value needs to be written for dbmover string mInfo = "NotFound"; if (iFileType == CrashInfoConsts.MobileCrashFileType.ETypeRegistrationMessage) { mInfo = CrashInfoConsts.KRegistrationMiscInfo; } if (iFileType == CrashInfoConsts.MobileCrashFileType.ETypeAliveMessage) { mInfo = CrashInfoConsts.KAliveTimeMiscInfo; } CCrashInfoFileUtilities.WriteOutputTags(mInfo, CrashInfoConsts.Kmisc_info, aOutput); }
internal void WriteProgramCounter(System.IO.StreamWriter aOutput) { aOutput.Write(CCrashInfoFileUtilities.BlockStartMarker(CrashInfoConsts.Kprogram_counter)); aOutput.Write(iProgramCounter.Value); aOutput.Write(CrashInfoConsts.KSeparator); if (iProgramCounter.Symbol != string.Empty) { aOutput.Write(iProgramCounter.Symbol); } else { aOutput.Write("-"); //missing pc symbol is marked with - in ci file. } aOutput.Write(CCrashInfoFileUtilities.BlockEndMarker(CrashInfoConsts.Kprogram_counter)); }
internal void WriteLoadedDLLs(System.IO.StreamWriter aOutput) { aOutput.Write(CCrashInfoFileUtilities.BlockStartMarker(CrashInfoConsts.Kcrashtime_loaded_dlls)); bool first = true; foreach (CCrashInfoCodeSegItem codeseg in iCodeSegs) { if (first) //all but first item start with separator - special handling needed { first = false; } else { aOutput.Write(CrashInfoConsts.KSeparator); } aOutput.Write(codeseg.Start); aOutput.Write(CrashInfoConsts.KSeparator); aOutput.Write(codeseg.End); aOutput.Write(CrashInfoConsts.KSeparator); aOutput.Write(codeseg.Name); } aOutput.Write(CCrashInfoFileUtilities.BlockEndMarker(CrashInfoConsts.Kcrashtime_loaded_dlls)); }
internal void WriteOtherRegisters(System.IO.StreamWriter aOutput) { if (iOtherRegLists.Count > 0) { aOutput.Write(CCrashInfoFileUtilities.BlockStartMarker(CrashInfoConsts.Kregister_extra)); foreach (CCrashInfoRegisterList regList in iOtherRegLists) { aOutput.Write(regList.Name); aOutput.Write(CrashInfoConsts.KEOL); foreach (CCrasInfoRegisterItem reg in regList.Registers) { aOutput.Write(reg.Name + " 0x" + reg.Value.ToString("X8")); if (reg.Symbol != string.Empty) { aOutput.Write(" " + reg.Symbol); } aOutput.Write(CrashInfoConsts.KEOL); } aOutput.Write(CrashInfoConsts.KEOL); } aOutput.Write(CCrashInfoFileUtilities.BlockEndMarker(CrashInfoConsts.Kregister_extra)); } }
public void WriteBasicRegisters(System.IO.StreamWriter aOutput) { aOutput.Write(CCrashInfoFileUtilities.BlockStartMarker(CrashInfoConsts.Kregister)); if (iBasicRegs.Registers.Count == 0) { aOutput.Write("NotFound|"); } else { aOutput.Write(iBasicRegs.Name); foreach (CCrasInfoRegisterItem reg in iBasicRegs.Registers) { aOutput.Write(CrashInfoConsts.KSeparator); aOutput.Write(reg.Name); aOutput.Write(CrashInfoConsts.KSeparator); aOutput.Write(reg.Value); if (reg.Symbol != string.Empty) { aOutput.Write(":" + reg.Symbol); } } } aOutput.Write(CCrashInfoFileUtilities.BlockEndMarker(CrashInfoConsts.Kregister)); }
internal void WriteTestset(System.IO.StreamWriter aOutput) { CCrashInfoFileUtilities.WriteOutputTags(iTestSet, CrashInfoConsts.Ktestset, aOutput); }
//Serial number known also as PSN internal void WriteSerialNumber(System.IO.StreamWriter aOutput) { CCrashInfoFileUtilities.WriteOutputTags(iSerialNumber, CrashInfoConsts.Kpsninfo, aOutput); }
/** Writes datablock contents to stream in CrashInfoFile format. Makes a complete .ci file */ public void WriteToStream(StreamWriter aOutput) { aOutput.Write(CCrashInfoFileUtilities.BlockStartMarker(CrashInfoConsts.Kversion)); aOutput.Write(CrashInfoConsts.KVersionNumber.ToString().PadLeft(8, '0')); aOutput.Write(CCrashInfoFileUtilities.BlockEndMarker(CrashInfoConsts.Kversion)); aOutput.Write(CCrashInfoFileUtilities.BlockStartMarker(CrashInfoConsts.Knum_datablocks)); aOutput.Write(iDatablocks.Count.ToString().PadLeft(8, '0')); aOutput.Write(CCrashInfoFileUtilities.BlockEndMarker(CrashInfoConsts.Knum_datablocks)); foreach (CCrashInfoDataBlock datablock in iDatablocks) { datablock.WriteTimeStamp(aOutput); datablock.WriteRomID(aOutput); datablock.WriteSWVersion(aOutput); datablock.WriteVariantID(aOutput); datablock.WriteHWVersion(aOutput); datablock.WritePanicID(aOutput); datablock.WritePanicCategory(aOutput); datablock.WritePanicDescription(aOutput); datablock.WriteLanguage(aOutput); datablock.WritePanicedProcess(aOutput); datablock.WriteProgramCounter(aOutput); datablock.WriteModuleName(aOutput); datablock.WriteRegisterList(aOutput); datablock.WriteLoadedDLLs(aOutput); datablock.WriteAvailableMemory(aOutput); datablock.WriteUserComment(aOutput); datablock.WriteMemoryInfo(aOutput); datablock.WriteMiscInfo(aOutput); datablock.WriteReporter(aOutput); datablock.WriteArchive(aOutput); datablock.WriteProductType(aOutput); datablock.WriteCrashSource(aOutput); datablock.WriteProductionMode(aOutput); datablock.WriteImei(aOutput); datablock.WriteResetreason(aOutput); datablock.WriteUptime(aOutput); datablock.WriteTestset(aOutput); datablock.WriteIMSI(aOutput); datablock.WriteNetworkCountry(aOutput); datablock.WriteNetworkIdentity(aOutput); datablock.WriteLocInfo(aOutput); datablock.WriteNetworkCell(aOutput); datablock.WriteSerialNumber(aOutput); datablock.WriteS60Version(aOutput); datablock.WriteProductCode(aOutput); datablock.WriteVariantVersion(aOutput); datablock.WriteMMCInfo(aOutput); datablock.WriteUID(aOutput); datablock.WriteDiskInfo(aOutput); datablock.WriteFileType(aOutput); datablock.WriteReportType(aOutput); datablock.WriteReportCategory(aOutput); datablock.WriteReportOK(aOutput); datablock.WriteReportFail(aOutput); datablock.WriteReportParam1(aOutput); datablock.WriteReportParam2(aOutput); datablock.WriteReportParam3(aOutput); datablock.WriteReportComments(aOutput); datablock.WriteRegisterExtraList(aOutput); datablock.WriteCrashHash(aOutput); datablock.WriteDetailedCrashHash(aOutput); datablock.WriteBinFileName(aOutput); datablock.WriteSymbolFileNames(aOutput); datablock.WriteCallstacks(aOutput); datablock.WriteEventlog(aOutput); datablock.WriteOstTraces(aOutput); } }
internal void WriteS60Version(System.IO.StreamWriter aOutput) { CCrashInfoFileUtilities.WriteOutputTags(iS60Version, CrashInfoConsts.Ks60version, aOutput); }
internal void WriteProductCode(System.IO.StreamWriter aOutput) { CCrashInfoFileUtilities.WriteOutputTags(iProductCode, CrashInfoConsts.Kproduct_code, aOutput); }
internal void WriteDiskInfo(System.IO.StreamWriter aOutput) { CCrashInfoFileUtilities.WriteOutputTags(iDiskInfo.ToString(), CrashInfoConsts.Kdiskinfo, aOutput); }
internal void WriteBinFileName(System.IO.StreamWriter aOutput) { CCrashInfoFileUtilities.WriteOutputTags(iBinFilename, CrashInfoConsts.Kbinfile_name, aOutput); }
internal void WriteReportComments(System.IO.StreamWriter aOutput) { CCrashInfoFileUtilities.WriteOutputTags(iReportComments, CrashInfoConsts.Kreport_comments, aOutput); }
internal void WriteReportParam3(System.IO.StreamWriter aOutput) { CCrashInfoFileUtilities.WriteOutputTags(iReportParamName3, CrashInfoConsts.Kreport_param_name3, aOutput); CCrashInfoFileUtilities.WriteOutputTags(iReportParamValue3, CrashInfoConsts.Kreport_param_value3, aOutput); }
internal void WriteReportFail(System.IO.StreamWriter aOutput) { CCrashInfoFileUtilities.WriteOutputTags(iReportFail, CrashInfoConsts.Kreport_fail, aOutput); }
internal void WriteReportCategory(System.IO.StreamWriter aOutput) { CCrashInfoFileUtilities.WriteOutputTags(iReportCategory, CrashInfoConsts.Kreport_category, aOutput); }
internal void WriteMMCInfo(System.IO.StreamWriter aOutput) { //Dummy value needs to be written for dbmover CCrashInfoFileUtilities.WriteOutputTags("", CrashInfoConsts.Kmmcinfo, aOutput); }
internal void WriteNetworkCell(System.IO.StreamWriter aOutput) { CCrashInfoFileUtilities.WriteOutputTags(iNetworkCell, CrashInfoConsts.Kcellid, aOutput); }
internal void WriteVariantVersion(System.IO.StreamWriter aOutput) { CCrashInfoFileUtilities.WriteOutputTags(iVariantVersion, CrashInfoConsts.Kvariant_version, aOutput); }
internal void WriteUID(System.IO.StreamWriter aOutput) { CCrashInfoFileUtilities.WriteOutputTags(iUID, CrashInfoConsts.Kuid, aOutput); }