{"id":162,"date":"2007-03-29T12:38:04","date_gmt":"2007-03-29T16:38:04","guid":{"rendered":"http:\/\/benjamin.smedbergs.us\/blog\/2007-03-29\/using-breakpad-with-19a3\/"},"modified":"2007-03-29T12:40:20","modified_gmt":"2007-03-29T16:40:20","slug":"using-breakpad-with-19a3","status":"publish","type":"post","link":"http:\/\/benjamin.smedbergs.us\/blog\/2007-03-29\/using-breakpad-with-19a3\/","title":{"rendered":"Using Breakpad with Gran Paradiso (1.9a3)"},"content":{"rendered":"<p>As I&#8217;ve <a href=\"http:\/\/benjamin.smedbergs.us\/blog\/2006-09-12\/deploying-the-airbag\/\">mentioned before<\/a>, for Firefox 3 we are planning on replacing the old and crusty talkback crash reporting system with a shiny new system based on <a href=\"http:\/\/code.google.com\/p\/google-breakpad\/\">Google Breakpad<\/a> (formerly called Airbag). We have a <a href=\"http:\/\/spreadsheets.google.com\/ccc?key=pz4NfkoyHy_bnEjHrg9seDA\">set of milestones and a schedule<\/a>, and a great <a href=\"http:\/\/wiki.mozilla.org\/Breakpad#Integration_Team\">team<\/a> working on client and server pieces.<\/p>\n<p>The Gran Paradiso 1.9a3 release has support for breakpad crash reporting on Windows. It is off by default because we don&#8217;t have a production server configured yet, but we would be happy for people to test using <a href=\"http:\/\/ted.mielczarek.org\/\">Ted<\/a>&#8216;s <a href=\"http:\/\/mavra.perilith.com\/~luser\/airbag-collector\/list.py\">development server<\/a>. To submit crashes to the server, follow this procedure:<\/p>\n<ul>\n<li><a href=\"http:\/\/download.mozilla.org\/?product=granparadiso-alpha3&#038;os=win&#038;lang=en-US\">Download <code>Gran Paradiso Setup Alpha 3.exe<\/code><\/a>\n<li>Disable talkback. You can do this either by choosing not to install talkback in the installer, or by disabling it in the Add-ons manager.\n<li>Set <code>MOZ_AIRBAG=1<\/code> in your environment. To make this a permanent setting, go to My Computer -> Properties -> Advanced -> Environment Variables.\n<li>Run Firefox. Crash. You can crash 1.9a3 reliably by following <a href=\"https:\/\/bugzilla.mozilla.org\/attachment.cgi?id=258966\">this link<\/a>.\n<li>Unfortunately, the client doesn&#8217;t keep track of a crash report ID yet. You&#8217;ll <a href=\"http:\/\/mavra.perilith.com\/~luser\/airbag-collector\/list.py\">have to find the report you submitted<\/a> by date\/time.\n<\/ul>\n<p><strong>WARNINGS:<\/strong> Because this is Ted&#8217;s development server it may disappear at any time, or your crash data might disappear whenever he feels like it. Secondly, it is possible for passwords and other data to end up in minidump files. If you are paranoid about HTTP snooping (or you don&#8217;t trust Ted), don&#8217;t send crash reports.<\/p>\n<p><strong>NOTE:<\/strong> You could follow this procedure with any nightly build, and it would submit the report successfully. But since Ted doesn&#8217;t have symbol data for every nightly build, you wouldn&#8217;t get much useful information.<\/p>\n<p>There is at least one thing this system already does better than talkback: it provides symbolic information for Windows system DLLs. Ted has uploaded the symbol information for Window XP SP2 and the VC8 CRT. In the future we can upload symbol information for other versions of Windows. For an example of a stack that walks through the system and the CRT, see <a href=\"http:\/\/mavra.perilith.com\/~luser\/airbag-collector\/list.py?id=90&#038;all_threads=1\">this report<\/a> from a memory-corruption bug.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As I&#8217;ve mentioned before, for Firefox 3 we are planning on replacing the old and crusty talkback crash reporting system with a shiny new system based on Google Breakpad (formerly called Airbag). We have a set of milestones and a schedule, and a great team working on client and server pieces. The Gran Paradiso 1.9a3 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[45],"class_list":["post-162","post","type-post","status-publish","format-standard","hentry","category-mozilla","tag-breakpad"],"_links":{"self":[{"href":"http:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/posts\/162","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/comments?post=162"}],"version-history":[{"count":0,"href":"http:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/posts\/162\/revisions"}],"wp:attachment":[{"href":"http:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/media?parent=162"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/categories?post=162"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/tags?post=162"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}