protected override void WriteSpecializedPartOfTextReport(TextWriter reportFile)
 {
     base.WriteReportFileHeader(reportFile, "CLR is " + (base.IsFlagSet(ReportOptions.ReportTerminateAfterSend) ? string.Empty : "not ") + "terminating");
     reportFile.WriteLine("P1(flavor)={0}", base.BucketingParameter <WatsonExceptionReport.BucketParamId>(WatsonExceptionReport.BucketParamId.Flavor));
     reportFile.WriteLine("P2(appVersion)={0}", base.BucketingParameter <WatsonExceptionReport.BucketParamId>(WatsonExceptionReport.BucketParamId.AppVersion));
     reportFile.WriteLine("P3(appName)={0}", base.BucketingParameter <WatsonExceptionReport.BucketParamId>(WatsonExceptionReport.BucketParamId.AppName));
     reportFile.WriteLine("P4(assemblyName)={0}", base.BucketingParameter <WatsonExceptionReport.BucketParamId>(WatsonExceptionReport.BucketParamId.AssemblyName));
     reportFile.WriteLine("P5(exMethodName)={0}", base.BucketingParameter <WatsonExceptionReport.BucketParamId>(WatsonExceptionReport.BucketParamId.ExMethodName));
     reportFile.WriteLine("P6(exceptionType)={0}", base.BucketingParameter <WatsonExceptionReport.BucketParamId>(WatsonExceptionReport.BucketParamId.ExceptionType));
     reportFile.WriteLine("P7(callstackHash)={0}", base.BucketingParameter <WatsonExceptionReport.BucketParamId>(WatsonExceptionReport.BucketParamId.CallstackHash));
     reportFile.WriteLine("P8(assemblyVer)={0}", base.BucketingParameter <WatsonExceptionReport.BucketParamId>(WatsonExceptionReport.BucketParamId.AssemblyVer));
     reportFile.WriteLine();
     reportFile.WriteLine("Exchange Version={0}", WatsonReport.ExchangeFormattedVersion(ExWatson.ExchangeVersion));
     reportFile.WriteLine("Default Assembly Version={0}", WatsonReport.ExchangeFormattedVersion(ExWatson.DefaultAssemblyVersion));
     reportFile.WriteLine("Executable Name={0}", WatsonReport.GetValidString(ExWatson.RealAppName));
     reportFile.WriteLine("Executable Version={0}", WatsonReport.ExchangeFormattedVersion(ExWatson.RealApplicationVersion));
     reportFile.WriteLine("Base Exception Target Site={0}", this.baseExceptionTargetSite);
     reportFile.WriteLine("Base Exception Assembly name={0}", this.baseExceptionAssemblyName);
     reportFile.WriteLine("Base Exception Method Name={0}", this.baseExceptionMethodName);
     reportFile.WriteLine("Exception Message={0}", this.exception.Message);
     reportFile.WriteLine("EIP=0x{0}", (IntPtr.Size == 4) ? this.exceptionEIP.ToString("x8") : this.exceptionEIP.ToString("x16"));
     reportFile.WriteLine("Build bit-size={0}", IntPtr.Size * 8);
     WatsonExceptionReport.WriteReportFileLIDs(reportFile, this.lids);
     WatsonExceptionReport.WriteReportFileExceptionObjectInfo(reportFile, this.exception);
     WatsonExceptionReport.WriteReportFileInnerExceptionObjectsInfo(reportFile, this.exception);
     WatsonExceptionReport.WriteReportFileStackTrace(reportFile, this.exception);
     WatsonExceptionReport.WriteReportFileLIDs(reportFile, this.lids);
     WatsonExceptionReport.WriteReportFileInnerExceptionObjectsInfo(reportFile, this.exception);
 }