A crash reporter

Mark Doliner mark at kingant.net
Wed Feb 11 13:03:54 EST 2009


On Tue, Feb 10, 2009 at 9:38 PM, Casey Ho <pidgin at caseyho.com> wrote:
> I've been working this past month on a proof-of-concept crash
> reporter, and I'm happy to say it's nearly complete.
>
> I've completed a simple proof of concept crash handler which dumps a
> file upon SIGSEGV.  The handler also forks a new process which then
> prints a stack trace.  Ideally the new process can grab additional
> data such as what plugins a user has installed and what protocols are
> enabled.  Even without reporting these dumps server side, the user can
> immediately be told what protocol or plugin crashed (so blame is
> correctly placed).  This is all without the need for a seperate GDB
> process or a special compile with debugging symbols.
>
> How do people feel about adding an automated crash reporter/processing
> program to Pidgin?  I think there's huge value in being able to
> immediately inform the user what plugin/protocol crashed without
> having to either install debug tools or wait to reproduce it.
>
> The main caveat is that Breakpad is a C++ program that depends on
> libstdc++.  I wrangled with automake and autoconf to make sure Pidgin
> will work as normal if C++/stdc++ aren't available (effectively making
> stdc++ an optional dependency).  But even then, how do you developers
> feel about including some amount of C++ code?
>
> You can see the diff at http://caseyho.com/misc/pidgin/

I like it!  A few random points:

* Shouldn't pidgin_crash_minidump_print() be declared in a .h file?

* I'm fine with C++

* Is there a reason for using the file extensions .cc and .cpp for c++
files?  Could we standardize on one or the other?  My vote would be
.cc.

* I agree with John and Richard that it would be nice if we could use
a library standalone library instead of including all the crash
reporting code itself (whether it be Breakpad or apport or something
else), even if that library isn't included in many Linux
distributions.

* Does the current diff just print to stdout?  Does the
"crashreporter" program exist?  Is that a part of Breakpad?

* What happens to the crash report?  Will the user be prompted to send
it to us or something?  Do we need something set up on our servers to
accept incoming crash reports?  And if so, is it possible for the
crash reports to contain private user data?  And if so how will we
make sure only trusted devs have access tot he crash reports?

This looks pretty sweet.

-Mark




More information about the Devel mailing list