An Embeddable Scripting Engine |
Tweet |
Follow @jx9_engine |
Jx9 Online Support.
Bug reporting
Jx9 have grown substantially since the beginning. At the time of writing, there are about 58000 lines of source code and by the time you read this it has probably grown even more.
Jx9 is a fairly stable and extensively tested product, but minor obscure bugs may still occurs. To help us make Jx9 the stable and solid product we want it to be, we need bug reports and bug fixes.
1.0 Where to report
If you can't fix a bug yourself and submit a fix for it, try to report an as detailed report using the online Jx9 bug tracking system over at
https://github.com/symisc/PH7/issues
(but please read the sections below first before doing that).
1.1 What to report
When
reporting a bug, you should include all information that will help us
understand what's wrong, what you expected to happen and how to
repeat the bad behavior. You therefore need to tell us:
-
your operating system's name and version number
- what
version of Jx9 you're using
- Jx9 compile-time options such as
if threading support is enabled and so on.
and anything and
everything else you think matters. Tell us what you expected to
happen, tell use what did happen, tell us how you could make it work
another way. Dig around, try out, test. Then include all the tiny
bits and pieces in your report. You will benefit from this yourself,
as it will enable us to help you quicker and more accurately.
If
Jx9 crashed, causing a core dump (in UNIX), there is hardly any use
to send that huge file to anyone of us. Unless we have an exact same
system setup as you, we can't do much with it. Instead we ask you to
get a stack trace and send that (much smaller) output to us instead!
1.2 Jx9 problems
First,
post all Jx9 problems on the Jx9 public
forums or the jx9-users
mailing list.
Tell us the Jx9 version and your operating
system. Tell us the name and version of all relevant sub-components.
Showing us a real source code example repeating your problem
is the best way to get our attention and it will greatly increase our
chances to understand your problem and to work on a fix (if we agree
it truly is a problem).
Lots of problems that appear to be
Jx9 problems are actually just abuses of the Jx9 API or other
malfunctions in your applications. It is advised that you run your
problematic program using a memory debug tool like valgrind or
similar before you post memory-related or "crashing"
problems to us.
1.3 Who will fix the problems
If
the problems or bugs you describe are considered to be bugs, we want
to have the problems fixed.
But please do not assume that you
can just lump over something to us and it will then magically be
fixed after some given time. Most often we need feedback and help to
understand what you've experienced and how to repeat a problem. Then
we may only be able to assist YOU to debug the problem and to track
down the proper fix.
We get reports from many people every
month and each report can take a considerable amount of time to
really go to the bottom with.
1.4 How to get a stack trace
First,
you must make sure that you compile all sources with -g and that you
don't 'strip' the final executable. Try to avoid optimizing the code
as well, remove -O, -O2 etc from the compiler options.
Run
the program until it cores.
Run your debugger on the core
file, like '<debugger> jx9_app core'. <debugger> should
be replaced with the name of your debugger, in most cases that will
be 'gdb', but 'dbx' and others also occur.
When the debugger
has finished loading the core file and presents you a prompt, enter
'where' (without the quotes) and press return.
The list that
is presented is the stack trace. If everything worked, it is supposed
to contain the chain of functions that were called when curl crashed.
Include the stack trace with your detailed bug report. It'll help a
lot.
1.5 Bugs in Jx9 bindings
There will of course pop up bugs in Jx9 bindings. You should then primarily approach the team that works on that particular binding and see what you can do to help them fix the problem.