Example #1
0
 public void Dump(DumpWriter w)
 {
     w.WriteField("id", this.int_0);
     w.WriteField("idName", this.string_0);
     w.WriteField("index", this.int_1);
     w.WriteField("item", (IDumpable)this.class496_0);
 }
Example #2
0
 /// <summary>
 /// Runs iteration on the data.
 /// </summary>
 internal void WriteDump(string output)
 {
     _writer = new DumpWriter(output);
     iterateLines(searchIds);
     _writer.Close();
     _writer = null;
 }
Example #3
0
 public void Dump(DumpWriter w)
 {
     w.WriteField("index", this.uint_0);
     w.WriteField("name", this.string_0);
     w.WriteField("indexes", (ICollection)this.list_0);
     w.WriteField("propertyDescriptors", (ICollection)this.list_1);
     w.WriteField("properties", (ICollection)this.list_2);
 }
Example #4
0
 public void Dump(DumpWriter w)
 {
     w.WriteField("totalDataSize", this.ulong_0);
     w.WriteField("pageCount", this.uint_0);
     w.WriteField("pageSize", this.uint_1);
     w.WriteField("lastPageSize", this.uint_2);
     w.WriteField("pages", (ICollection)this.list_0);
 }
Example #5
0
 public new void Dump(DumpWriter w)
 {
     w.WriteField("totalDataSize", this.ulong_1);
     w.WriteField("pageStartOffset", this.ulong_2);
     w.WriteField("pageIndex", this.int_2);
     w.WriteField("pageCount", this.int_3);
     w.WriteField("pageDataSize", this.ulong_3);
     w.WriteField("binaryData", (IDumpable)this.class882_0);
 }
Example #6
0
 public void Dump(DumpWriter w)
 {
     w.WriteField("flags", (int)this.enum52_0);
     w.WriteField("nameIndex", this.uint_1);
     w.WriteField("type", this.uint_2);
     w.WriteField("customTypeSize", this.uint_3);
     w.WriteField("typeSize", this.uint_4);
     w.WriteField("unknown1", this.uint_5);
     w.WriteField("unknown2", this.uint_6);
     w.WriteField("propertyValues", (ICollection)this.list_0);
     w.WriteField("name", this.string_0);
 }
Example #7
0
 public override void Dump(DumpWriter w)
 {
     base.Dump(w);
     w.OpenObject("segmentIndexes");
     foreach (uint num in this.hashSet_0)
     {
         w.WriteLine(num.ToString() + ",");
     }
     w.CloseObject();
     w.WriteField("schemaNames", (ICollection)this.list_0);
     w.WriteField("schemaEntries", (ICollection)this.list_1);
     w.WriteField("propertyEntries", (ICollection)this.list_2);
 }
Example #8
0
 public virtual void Dump(DumpWriter w)
 {
     w.WriteField("signature", this.ushort_0);
     w.WriteField("name", Encodings.Ascii.GetString(this.byte_0, 0, this.byte_0.Length));
     w.WriteField("segmentIndex", this.uint_0);
     w.WriteField("unknown1", this.int_1);
     w.WriteField("segmentSize", this.uint_1);
     w.WriteField("unknown2", this.int_2);
     w.WriteField("dataStorageRevision", this.int_3);
     w.WriteField("unknown3", this.int_4);
     w.WriteField("systemDataAlignmentOffset", this.int_5);
     w.WriteField("objectDataAlignmentOffset", this.int_6);
 }
Example #9
0
 public void Dump(DumpWriter w)
 {
     w.WriteField("schemaNameIndex", this.uint_0);
     w.WriteField("sortedIndexes", (ICollection)this.list_0);
     w.WriteLine("idIndexesSet {");
     foreach (Class46.Class47[] class47Array in this.class47_0)
     {
         w.WriteLine("item[] {");
         foreach (Class46.Class47 class47 in class47Array)
         {
             w.WriteField("item", (IDumpable)class47);
         }
         w.WriteLine("}");
     }
     w.WriteLine("}");
 }
Example #10
0
 public void Dump(DumpWriter w)
 {
     w.WriteField("fileSignature", this.uint_1);
     w.WriteField("fileHeaderSize", this.int_2);
     w.WriteField("unknown1", this.int_3);
     w.WriteField("version", this.int_4);
     w.WriteField("unknown2", this.int_5);
     w.WriteField("dataStorageRevision", this.int_6);
     w.WriteField("segmentIndexOffset", this.uint_2);
     w.WriteField("segmentIndexUnknown", this.int_7);
     w.WriteField("segmentIndexEntryCount", this.int_8);
     w.WriteField("schemaIndexSegmentIndex", this.uint_3);
     w.WriteField("dataIndexSegmentIndex", this.uint_4);
     w.WriteField("searchSegmentIndex", this.uint_5);
     w.WriteField("previousSaveIndex", this.uint_6);
     w.WriteField("fileSize", this.int_9);
 }
        /// <summary>
        /// Write report to storage
        /// </summary>
        /// <param name="report"></param>
        public void Write(Report report)
        {
            try
            {
                using (Stream reportStream = _settings.StorageBackend.CreateReportFile())
                {
                    using (var zipStorer = ZipStorer.Create(reportStream, string.Empty))
                    {
                        // write exception
                        WriteException(zipStorer, report.Exception);

                        // write report
                        WriteReport(zipStorer, report);

                        // Add the memory minidump to the report file (only if configured so)
                        var minidumpFilePath =
                            Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData),
                                         "Exception_MiniDump_" + DateTime.UtcNow.ToFileTime() + ".mdmp");
                        if (DumpWriter.Write(minidumpFilePath, _settings.MiniDumpType))
                        {
                            zipStorer.AddFile(ZipStorer.Compression.Deflate, minidumpFilePath, StoredItemFile.MiniDump,
                                              string.Empty);
                            File.Delete(minidumpFilePath);
                        }

                        // Add any user supplied files in the report (if any)
                        if (_settings.AdditionalReportFiles != null && _settings.AdditionalReportFiles.Count > 0)
                        {
                            AddAdditionalFiles(zipStorer);
                        }
                    }

                    Logger.Trace("Created a new report file. Currently the number of report files queued to be send is: " +
                                 _settings.StorageBackend.GetReportCount());
                }
            }
            catch (TooManyReportsException ex)
            {
                Logger.Trace("Current report count is at its limit as per 'Settings.MaxQueuedReports (" +
                             ex.MaxQueuedReports + ")' setting: Skipping bug report generation.");
            }
        }
Example #12
0
 public void Dump(DumpWriter w)
 {
     w.WriteField("schemas", (ICollection)this.list_0);
     w.WriteField("schemaUnknownProperties", (ICollection)this.list_1);
     w.WriteField("schemaSearchDataList", (ICollection)this.list_2);
     w.OpenObject("handleToDataRecord");
     foreach (KeyValuePair <Enum53, Class560> keyValuePair1 in this.dictionary_0)
     {
         w.WriteLine("Record type: {0}, handle + data count: {1}", (object)keyValuePair1.Key, (object)keyValuePair1.Value.Count);
         foreach (KeyValuePair <ulong, List <Stream> > keyValuePair2 in (Dictionary <ulong, List <Stream> >)keyValuePair1.Value)
         {
             w.Write("{0}: ", (object)keyValuePair2.Key);
             foreach (Stream stream in keyValuePair2.Value)
             {
                 w.Write("DataRecord: ");
                 w.Write(stream);
             }
             w.WriteLine(",");
         }
     }
     w.CloseObject();
 }
Example #13
0
    public static int Dump(IntPtr L, Stream dest)
    {
        var writer = new DumpWriter(dest);

        return(Dump(L, writer.Write, IntPtr.Zero));
    }
Example #14
0
 public void Dump(DumpWriter w)
 {
     w.WriteField("dataSize", this.uint_0);
     w.WriteField("unknownFlags", this.uint_1);
 }
Example #15
0
 public override void Dump(DumpWriter w)
 {
     base.Dump(w);
     w.WriteField("schemas", (ICollection)this.list_0);
     w.WriteField("unknownProperties", (ICollection)this.list_1);
 }
Example #16
0
 public void Dump(DumpWriter w)
 {
     w.WriteField("schemaIndex", this.uint_0);
     w.WriteField("columns", (ICollection)this.list_0);
 }
Example #17
0
 public void Dump(DumpWriter w)
 {
     w.WriteField("name", this.string_0);
     w.WriteField("dataType", (byte)this.enum26_0);
     w.WriteField("data", (IDumpable)this.struct18_0);
 }
Example #18
0
 public void Dump(DumpWriter w)
 {
     w.WriteField("segmentIndex", this.uint_0);
     w.WriteField("size", this.uint_1);
 }
Example #19
0
 public void Dump(DumpWriter w)
 {
     w.WriteField("offset", this.ulong_0);
     w.WriteField("size", this.uint_0);
 }
Example #20
0
 public void Dump(DumpWriter w)
 {
     w.WriteField("bytes", this.stream_0);
 }
Example #21
0
 public virtual void Dump(DumpWriter w)
 {
     w.WriteField("header", (IDumpable)this.class681_0);
     w.WriteField("startOffset", this.ulong_0);
 }
Example #22
0
 public void Dump(DumpWriter w)
 {
     w.WriteField("handle", this.ulong_0);
     w.WriteField("localOffset", this.uint_0);
     w.WriteField("referencedObject", "object");
 }
Example #23
0
 public static int Dump( IntPtr L, Stream dest )
 {
     var writer = new DumpWriter( dest );
     return Dump( L, writer.Write, IntPtr.Zero );
 }
Example #24
0
 public void Dump(DumpWriter w)
 {
     w.WriteField("code", this.int_0);
     w.WriteField("value", this.ValueString);
 }
Example #25
0
 public override void Dump(DumpWriter w)
 {
     base.Dump(w);
     w.WriteField("entries", (ICollection)this.list_0);
 }
Example #26
0
 public void Dump(DumpWriter w)
 {
     w.WriteField("handle", this.ulong_0);
     w.WriteField("indexes", (ICollection)this.list_0);
 }
Example #27
0
 public void Dump(DumpWriter w)
 {
     w.WriteField("index", this.uint_0);
     w.WriteField("segmentIndex", this.uint_1);
     w.WriteField("localOffset", this.uint_2);
 }
Example #28
0
        private void CreateReportZip(SerializableException serializableException, Report report)
        {
            // Test if it has NOT been more than x many days since entry assembly was last modified)
            if (Settings.StopReportingAfter < 0 ||
                File.GetLastWriteTime(Settings.EntryAssembly.Location).AddDays(Settings.StopReportingAfter).CompareTo(DateTime.Now) > 0)
            {
                // Test if there is already more than enough queued report files
                if (Settings.MaxQueuedReports < 0 || Storer.GetReportCount() < Settings.MaxQueuedReports)
                {
                    var reportFileName   = "Exception_" + DateTime.UtcNow.ToFileTime() + ".zip";
                    var minidumpFilePath = Path.Combine(
                        Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "Exception_MiniDump_" + DateTime.UtcNow.ToFileTime() + ".mdmp");

                    using (var storer = new Storer())
                        using (var zipStorer = ZipStorer.Create(storer.CreateReportFile(reportFileName), string.Empty))
                            using (var stream = new MemoryStream())
                            {
                                // Store the exception
                                var serializer = new XmlSerializer(typeof(SerializableException));
                                serializer.Serialize(stream, serializableException);
                                stream.Position = 0;
                                zipStorer.AddStream(ZipStorer.Compression.Deflate, StoredItemFile.Exception, stream, DateTime.UtcNow, string.Empty);

                                // Store the report
                                stream.SetLength(0);

                                try
                                {
                                    serializer = report.CustomInfo != null
                                                                             ? new XmlSerializer(typeof(Report), new[] { report.CustomInfo.GetType() })
                                                                             : new XmlSerializer(typeof(Report));

                                    serializer.Serialize(stream, report);
                                }
                                catch (Exception exception)
                                {
                                    Logger.Error(
                                        string.Format(
                                            "The given custom info of type [{0}] cannot be serialized. Make sure that given type and inner types are XML serializable.",
                                            report.CustomInfo.GetType()),
                                        exception);
                                    report.CustomInfo = null;
                                    serializer        = new XmlSerializer(typeof(Report));
                                    serializer.Serialize(stream, report);
                                }

                                stream.Position = 0;
                                zipStorer.AddStream(ZipStorer.Compression.Deflate, StoredItemFile.Report, stream, DateTime.UtcNow, string.Empty);

                                // Add the memory minidump to the report file (only if configured so)
                                if (DumpWriter.Write(minidumpFilePath))
                                {
                                    zipStorer.AddFile(ZipStorer.Compression.Deflate, minidumpFilePath, StoredItemFile.MiniDump, string.Empty);
                                    File.Delete(minidumpFilePath);
                                }

                                // Add any user supplied files in the report (if any)
                                if (Settings.AdditionalReportFiles.Count != 0)
                                {
                                    // ToDo: This needs a lot more work!
                                    this.AddAdditionalFiles(zipStorer);
                                }
                            }

                    Logger.Trace("Created a new report file. Currently the number of report files queued to be send is: " + Storer.GetReportCount());
                }
                else
                {
                    Logger.Trace(
                        "Current report count is at its limit as per 'Settings.MaxQueuedReports (" + Settings.MaxQueuedReports
                        + ")' setting: Skipping bug report generation.");
                }
            }
            else
            {
                Logger.Trace(
                    "As per setting 'Settings.StopReportingAfter(" + Settings.StopReportingAfter
                    + ")', bug reporting feature was enabled for a certain amount of time which has now expired: Bug reporting is now disabled.");

                // ToDo: Completely eliminate this with SettingsOverride.DisableReporting = true; since enumerating filesystem adds overhead);
                if (Storer.GetReportCount() > 0)
                {
                    Logger.Trace(
                        "As per setting 'Settings.StopReportingAfter(" + Settings.StopReportingAfter
                        + ")', bug reporting feature was enabled for a certain amount of time which has now expired: Truncating all expired bug reports.");
                    Storer.TruncateReportFiles(0);
                }
            }
        }
Example #29
0
 public void Dump(DumpWriter w)
 {
     w.WriteField("offset", this.int_0);
     w.WriteField("length", this.int_1);
     w.WriteField("stream", this.stream_0, this.int_0, this.int_1);
 }