Reviewed by Maciej.
[WebKit-https.git] / WebKitTools / iExploder / tools / osx_last_crash.rb
1 #!/usr/bin/ruby
2 # Gives you information about the most recent crash for each application
3 # that has crashed within the last 2 days
4
5 $LogDir=ENV['HOME'] + '/Library/Logs/CrashReporter'
6 $Days=1
7 $StackCount=5
8
9 files=`find #$LogDir -mtime -#$Days -type f | grep -v synergy`
10 files.each { |filename|
11     filename.chop!
12     record = 0
13     date=''
14     stackTrace = []
15
16     File.open(filename).readlines.each { |line|
17         #puts line
18
19         if line =~ /^Date.*(200.*)/
20             date = $1
21         end
22
23         if line =~ /^Thread \d+ Crashed/
24             record = 1
25             # reset the stack trace
26             stackTrace = []
27         end
28
29         if record
30             stackTrace << line
31             record = record + 1
32
33             # stop recording after $StackCount lines
34             if record > ($StackCount + 2)
35                 record = nil
36             end
37         end
38     }
39
40     puts File.basename(filename) + " - " + date
41     puts "==================================================="
42     stackTrace.each { |line|
43         puts line
44     }
45     puts ""
46 }
47
48