1 { |
|
2 Processor => { |
|
3 JobQueue => { |
|
4 Backend => { |
|
5 Minion => { Pg => "postgresql:///crashtest" }, |
|
6 }, |
|
7 }, |
|
8 CrashProcessor => { |
|
9 Breakpad => { |
|
10 JSONStackwalker => 'stackwalker', |
|
11 SymbolsPath => 'data/breakpad-debug-symbols/*', |
|
12 }, |
|
13 }, |
|
14 CrashSignatureExtractor => { |
|
15 C_Cpp => { |
|
16 GroupMaxDistance => 0.1, |
|
17 TopIrrelevant => [ |
|
18 # Ignore these frames at the top of the stack when creating a crash signature (mostly exception handler and libc internal functions) |
|
19 "__cxxabiv1::__terminate", |
|
20 "__gnu_cxx::__verbose_terminate_handler", |
|
21 "std::terminate", |
|
22 "raise", |
|
23 "abort", |
|
24 ], |
|
25 TopFrame => [ |
|
26 # Consider these frames as the first (from top) relevant frame of the crash |
|
27 # Order is important here, the first match will be selected |
|
28 qr/std::__throw_[a-z]+_error/, |
|
29 "__cxxabiv1::__cxa_throw", |
|
30 ], |
|
31 BottomIrrelevant => [ |
|
32 # Ignore these frames at the bottom of the stack (libc internal functions) |
|
33 "__libc_start_main", |
|
34 "_init", |
|
35 ], |
|
36 BottomFrame => [ |
|
37 # Don't use frames past this one in the signature |
|
38 #"main", |
|
39 ], |
|
40 RemoveNamespace => [ |
|
41 # Clean function names by removing the namespace |
|
42 #"some_ns::", |
|
43 ], |
|
44 }, |
|
45 }, |
|
46 }, |
|
47 Storage => [ |
|
48 { Type => "Sql", db => { Pg => "postgresql:///crashtest" } }, |
|
49 { Type => "File", DataDir => 'data/crashs/' }, |
|
50 ], |
|
51 WebInterface => { |
|
52 ScmLinks => { |
|
53 "svn:svn.example.org/testproject" => 'https://redmine.example.org/projects/testproject/repository/entry/<%= $scmpath =%>?rev=<%= $rev =%>#L<%= $line =%>', |
|
54 }, |
|
55 ExtraColumns => { |
|
56 Index => [ |
|
57 { id => 'os' , db_column => "crash_user.os", name => 'Operating System' }, |
|
58 { id => 'cpu_count' , db_column => "crash_user.cpu_count", name => "CPU count" }, |
|
59 { id => 'program' , db_column => "main_module", name => 'Program' }, |
|
60 ], |
|
61 GroupIndex => [ |
|
62 { id => 'program' , db_column => "string_agg(distinct(main_module), ', ')", name => 'Programs' }, |
|
63 ], |
|
64 Search => [ |
|
65 { id => 'cpu_count' , db_column => "crash_user.cpu_count", name => "CPU count" }, |
|
66 { id => 'program' , db_column => "main_module", name => 'Program' }, |
|
67 ], |
|
68 }, |
|
69 }, |
|
70 }; |
|
71 # vim:ft=perl: |
|