crashanalysercmd/Libraries/File Formats/Plugins/CrashInfoFilePlugin/FileFormat/CCrashInfoDataBlock.cs
--- a/crashanalysercmd/Libraries/File Formats/Plugins/CrashInfoFilePlugin/FileFormat/CCrashInfoDataBlock.cs Tue Feb 23 17:05:24 2010 +0200
+++ b/crashanalysercmd/Libraries/File Formats/Plugins/CrashInfoFilePlugin/FileFormat/CCrashInfoDataBlock.cs Wed Apr 21 09:51:02 2010 +0300
@@ -46,6 +46,8 @@
using CrashItemLib.Crash.Traces;
using SymbianStructuresLib.Debug.Trace;
using CrashItemLib.Crash.InfoEnvironment;
+using ErrorLibrary;
+using MobileCrashLib;
namespace CrashInfoFilePlugin.PluginImplementations.FileFormat
{
@@ -76,6 +78,9 @@
//UpTime
iUptime = header.UpTime.TotalSeconds;
+
+ // Crash source
+ iCrashSource = header.CrashSource;
}
}
/** Add romid, timestamp, platform, language and sw version */
@@ -234,7 +239,8 @@
{
iProductType = info.ProductType;
iProductCode = info.ProductCode.Trim();
- iSerialNumber = info.SerialNumber.Trim();
+ iSerialNumber = info.SerialNumber.Trim();
+ iProductionMode = info.ProductionMode;
}
}
@@ -334,10 +340,10 @@
CISummarisableEntity primarySummary = aContainer.PrimarySummary;
if (primarySummary != null)
{
- CCrashInfoHashBuilder.TConfiguration config = CCrashInfoHashBuilder.TConfiguration.EDefault;
+ MobileCrashHashBuilder.TConfiguration config = MobileCrashHashBuilder.TConfiguration.EDefault;
try //CCrashInfoHashBuilder.New throws an exception if there's not enough data for hash creation
{
- CCrashInfoHashBuilder builder = CCrashInfoHashBuilder.New(config, primarySummary);
+ MobileCrashHashBuilder builder = MobileCrashHashBuilder.New(config, primarySummary);
iHash = builder.GetHash();
}
catch (Exception e)
@@ -503,6 +509,12 @@
CCrashInfoFileUtilities.WriteOutputTags(iPanicCategory, CrashInfoConsts.Kpanic_category, aOutput);
}
+ internal void WritePanicDescription(System.IO.StreamWriter aOutput)
+ {
+ string panicDescription = XmlErrorLibrary.GetPanicDescription(iPanicCategory, iPanicID.ToString());
+ CCrashInfoFileUtilities.WriteOutputTags(panicDescription, CrashInfoConsts.Kpanic_description, aOutput);
+ }
+
internal void WriteLanguage(System.IO.StreamWriter aOutput)
{
CCrashInfoFileUtilities.WriteOutputTags(iLanguage, CrashInfoConsts.Klanguage, aOutput);
@@ -606,6 +618,31 @@
{
CCrashInfoFileUtilities.WriteOutputTags(iProductType, CrashInfoConsts.Kproduct_type, 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 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 WriteImei(System.IO.StreamWriter aOutput)
{
CCrashInfoFileUtilities.WriteOutputTags(iImei, CrashInfoConsts.Kimei, aOutput);
@@ -838,6 +875,8 @@
private string iProductType = string.Empty; //aka RM-code
private string iProductCode = string.Empty; //7-digit HW variant code
private string iSerialNumber = string.Empty; //aka PSN
+ private int? iProductionMode = null; // 1: production mode phone, 0: RnD phone
+ private int? iCrashSource = null; // 1: crash from user side, 0: from kernel side.
private string iPhoneNumber = "NotFound";
private string iImei = string.Empty;