Home | History | Annotate | Download | only in tools
      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 
     49