On Thu, 2010-07-08 at 11:16 +0200, Karel Klic wrote:
Hi,
I have written a document that describes how an interpreted language
should interact with ABRT, as requested by Jirka.
I tried to write it for non-ABRT people and describe the situation as we
have it now (unfortunately src/Daemon/MiddleWare.cpp must be patched
when adding an interpreter support).
This file should go to doc/INTERPRETED_LANGUAGES in our repository.
Looks good, please add to git.
A few suggestions:
EXECUTABLE
The file with the main entry point of the application. Might be a JAR
archive, a script file, a bytecode file, or the interpreter. It should
be a real file on the filesystem, so ABRT can check the origin of the
file (source package). If the file is not known, the most appropriate
is to shortly describe the reason why it is not known in the field,
e.g. "Exception raised from Python shell".
Should we suggest to not save such crashes? They are hardly useful:
someone experiments in interactive python or perl, and BOOM -
we get completely useless crash dumps, possibly many of them while
the experimenting continues.
ANALYZER
The name of an analyzer plugin which should be run during the
analysis.
add something like: "...It is used to choose appropriate method of post
processing for the crash dump. Sensible names are "python", "perl",
"java" etc."
BASENAME
Short string indicating the origin of the event. It is used as a
part of directory name in /var/spool/abrt. Use "python" for Python
exceptions, "ruby" for ruby interpreter, "java" for JRE.
I'd rephrase it, showing how exactly it is going to be used:
"It is used as a part of directory
name: /var/spool/abrt/BASENAME-suffix"
BACKTRACE
The backtrace in a format that is commonly used by the interpreter.
(1) the phrase is unclear. Maybe: "The backtrace at the moment
of the crash, if it is available. May include other useful information.
For example, for ccpp crashes, it includes register dump."
(2) Is it mandatory?
(3) What to supply if it is not available?
Here is an example of a crash report from Python, as it is written to
the socket:
PID=563\0
EXECUTABLE=/usr/bin/python\0
ANALYZER=Python\0
BASENAME=pyhook\0
REASON=CCMainWindow.py:1:<module>:ZeroDivisionError: integer division
or modulo by zero\0
BACKTRACE=%s\0
DONE\0
A better BACKTRACE= value is needed here.
--
vda