Rename sample config and add more examples
authorVincent Tondellier <tonton+hg@team1664.org>
Sun, 14 Feb 2016 22:39:01 +0100
changeset 99 0e40a68ba421
parent 98 aa2437932c03
child 100 4dae01f2beee
Rename sample config and add more examples
crash_test.conf
crash_test.conf.sample
--- a/crash_test.conf	Sun Feb 14 20:25:24 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-{
-  Processor => {
-    JobQueue => {
-      Backend => {
-        Minion => { Pg => "postgresql:///crashtest" },
-      },
-    },
-    CrashProcessor => {
-      Breakpad => {
-        JSONStackwalker => 'stackwalker',
-        SymbolsPath => 'data/breakpad-debug-symbols/*',
-      },
-    },
-  },
-  Storage => [
-    { Type => "Sql",  db => { Pg => "postgresql:///crashtest" } },
-    { Type => "File", DataDir => 'data/crashs/' },
-  ],
-  WebInterface => {
-    ScmLinks => {
-      "svn:svn.example.org/testproject" => 'https://redmine.example.org/projects/testproject/repository/entry/<%= $scmpath =%>?rev=<%= $rev =%>#L<%= $line =%>',
-    },
-    ExtraColumns => {
-      Index => [
-        { id => 'os', db_column => "crash_user.os", name => 'Operating System' },
-      ],
-    },
-  },
-};
-# vim:ft=perl:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/crash_test.conf.sample	Sun Feb 14 22:39:01 2016 +0100
@@ -0,0 +1,69 @@
+{
+  Processor => {
+    JobQueue => {
+      Backend => {
+        Minion => { Pg => "postgresql:///crashtest" },
+      },
+    },
+    CrashProcessor => {
+      Breakpad => {
+        JSONStackwalker => 'stackwalker',
+        SymbolsPath => 'data/breakpad-debug-symbols/*',
+      },
+    },
+    CrashSignatureExtractor => {
+      C_Cpp => {
+        GroupMaxDistance => 0.1,
+        TopIrrelevant => [
+          # Ignore these frames at the top of the stack when creating a crash signature (mostly exception handler and libc internal functions)
+          "__cxxabiv1::__terminate",
+          "__gnu_cxx::__verbose_terminate_handler",
+          "std::terminate",
+          "raise",
+          "abort",
+        ],
+        TopFrame => [
+          # Consider these frames as the first (from top) relevant frame of the crash
+          # Order is important here, the first match will be selected
+          qr/std::__throw_[a-z]+_error/,
+          "__cxxabiv1::__cxa_throw",
+        ],
+        BottomIrrelevant => [
+          # Ignore these frames at the bottom of the stack (libc internal functions)
+          "__libc_start_main",
+          "_init",
+        ],
+        BottomFrame => [
+          # Don't use frames past this one in the signature
+          #"main",
+        ],
+        RemoveNamespace => [
+          # Clean function names by removing the namespace
+          #"some_ns::",
+        ],
+  },
+  Storage => [
+    { Type => "Sql",  db => { Pg => "postgresql:///crashtest" } },
+    { Type => "File", DataDir => 'data/crashs/' },
+  ],
+  WebInterface => {
+    ScmLinks => {
+      "svn:svn.example.org/testproject" => 'https://redmine.example.org/projects/testproject/repository/entry/<%= $scmpath =%>?rev=<%= $rev =%>#L<%= $line =%>',
+    },
+    ExtraColumns => {
+      Index => [
+        { id => 'os'        , db_column => "crash_user.os", name => 'Operating System' },
+        { id => 'cpu_count' , db_column => "crash_user.cpu_count", name => "CPU count" },
+        { id => 'program'   , db_column => "main_module", name => 'Program' },
+      ],
+      GroupIndex => [
+        { id => 'program'   , db_column => "string_agg(distinct(main_module), ', ')", name => 'Programs' },
+      ],
+      Search => [
+        { id => 'cpu_count' , db_column => "crash_user.cpu_count", name => "CPU count" },
+        { id => 'program'   , db_column => "main_module", name => 'Program' },
+      ],
+    },
+  },
+};
+# vim:ft=perl: