Frank Wein wrote:
Hi,

Hi there!

i have a question regarding the Crash Reporter (i think this fits better
here than on the users list): How does it work? I found
http://ooo.ximian.com/lxr/source/porting/crashrep/source/ which seems to
be the client source for it, right? Now i found some example crash
reports, for example
http://www.oooforum.org/forum/viewtopic.phtml?p=81013&sid=7f6fb44658a485c1aca309fab6f9f397#81013.
 Now how do you get a complete stacktrace out of it (with function
names, etc.), does it do this with the help of a server? If yes, is this
server open-source or is that closed source?


The client code you�ve found sends a SOAP request to a server collectiong reports. The server can be configured in the bootstrap.ini file and the default for OOo is http://report.services.openoffice.org, that�s where SUN is collecting OpenOffice.org crash reports.

There is no public access to data collected by that server due to privacy concerns and the code on the server side has not been open sourced.

In the concrete case ( Sun�s OpenOffice.org crash report handling service ) the Receiving SOAP Service at http://report.services.openoffice.org is just a small apache SOAP service with the signature

public static String submitReport(SOAPContext soapContext,
                                  String body, Hashtable attachments )

which sends the report by mail to a next instance service which than stores the report into a database. Than there is a third service using 2 processes on differnt hosts involved which tries to find similarities between stacks stored in the database based on the information originally send in the reportmail.xml document, this than groups similar stacks together and assigns one StackMatchID in the database, here there is some kind of well almost "fuzzy logic" involved in detecting similarity and there can be false positives while doing that and also sometimes the same problem root cause might lead to serveral StackMatchIds. Sun developers have an internal (also closed source) web frontend to access the crash report database and some commandline tools are also available to Sun developers. We also do some statistical analysis of the data collected in order to find highscorers that need more urgent fixing for example. That complexity is only needed because of the large amount of data generated by the standard OOo distribution and by StarOffice. For smaller OOo based distributions one could think of much simpler szenarios on the server side.

Back to the question "Now how do you get a complete stacktrace out of it (with function> names, etc.)?"

Here it is important to see that the client sends more than just the XML file you�ve mentioned. On Windows a binary user.dmp Windows Dump File and on Unix a stack.txt file containing additional stacktrace information is also send. From the information in the XML File alone you can�t get to function names. To get this type of information we have an additional tool which needs full access to a directory where the corresponding OOo has been compiled. On Windows this calls the debugger kd.exe with the binary user.dmp attachment and on unix it calls addr2line with information collected from the XML document. If I remember correctly we needed a specially patched addr2line in order to get this to work with OOo binaries on Solaris.



Related Links:

http://porting.openoffice.org/files/documents/14/1154/crash_report_generator_ui_specification_ooo.sxw
http://porting.openoffice.org/crashrep/errormail_xml.sxw


Greetings
Frank



Kind Regards,
Bernd Eilers

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to