We've moved! Come visit our new blog:

Blog Archive

Thursday, December 21, 2006

Programs crashing? Airbag helps you practice "safe hex"

Post by Brian Ryner and Mark Mentovai, Google Software Engineers

Every program, open source or not, has to cope with crashes - it's just an unfortunate fact of life. Software developers hate crashes and dream about eradicating them, but sometimes they're difficult to reproduce. If developers could get reliable and automatic reports when their programs crash, they'd be able to figure out which ones happen most frequently, and more importantly, be able to fix them. Writing a system to handle crash reports is a lot of work though, and writing a crash reporter that works across a variety of hardware configurations and operating systems is even harder. Wouldn't it be great if someone wrote a crash reporter and made it easy to integrate into other projects? Wouldn't it be even better if they made an open-source project out of it?

That's exactly what we're doing here at Google. We like making developers' lives easier, and like you, we hate crashes. Airbag is our codename for an open source project that handles all of the dirty work when it comes to crash reports. Best of all, it works across several platforms - we've got Windows and Mac working now, and Linux support is coming soon.

Not everyone needs to know how the stack works on Intel Macs or how function calls work behind the scenes in Windows, which is why Airbag provides a simple API to catch crashes in your application and upload crash reports to a server. On the server side, we've implemented a library that can process the crash reports by matching them up with debugging symbols, so that users of a program don't need any of these symbols on their computers, and download sizes stay small. The server library is intended to be integrated into any kind of server infrastructure - for example, you could use Apache to collect reports and store them in MySQL. We were excited to hear that the folks at Mozilla are integrating Airbag into Firefox, and hope it can help them and other open source communities continually improve the quality of their products. Check it out!