コード例 #1
0
        /** 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);
        }
コード例 #2
0
 //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));
 }
コード例 #3
0
 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));
     }
 }
コード例 #4
0
 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));
     }
 }
コード例 #5
0
        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));
        }
コード例 #6
0
 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));
     }
 }
コード例 #7
0
        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));
        }
コード例 #8
0
 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));
 }
コード例 #9
0
        /** 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);
            }
        }
コード例 #10
0
 internal void WriteMemoryInfo(System.IO.StreamWriter aOutput)
 {
     //Dummy value needs to be written for dbmover - for memory info just the tags
     aOutput.Write(CCrashInfoFileUtilities.BlockStartMarker(CrashInfoConsts.Kmemory_info));
     aOutput.Write(CCrashInfoFileUtilities.BlockEndMarker(CrashInfoConsts.Kmemory_info));
 }