1 @node Getting Support and Reporting Bugs
2 @comment node-name, next, previous, up
3 @chapter Getting Support and Reporting Bugs
11 @node Volunteer Support
12 @comment node-name, next, previous, up
13 @section Volunteer Support
15 Your primary source of SBCL support should probably be the mailing
16 list @strong{sbcl-help}: in addition to other users SBCL developers
17 monitor this list and are available for advice. As an anti-spam
18 measure subscription is required for posting:
20 @urlline{https://lists.sourceforge.net/lists/listinfo/sbcl-help}
22 Remember that the people answering your question are volunteers, so
23 you stand a much better chance of getting a good answer if you ask a
26 Before sending mail, check the list archives at either
28 @urlline{http://sourceforge.net/mailarchive/forum.php?forum_name=sbcl-help}
32 @urlline{http://news.gmane.org/gmane.lisp.steel-bank.general}
34 to see if your question has been answered already. Checking the bug
35 database is also worth it @xref{Reporting Bugs}, to see if the issue
38 For general advice on asking good questions, see
40 @urlline{http://www.catb.org/~esr/faqs/smart-questions.html}.
42 @node Commercial Support
43 @comment node-name, next, previous, up
44 @section Commercial Support
46 There is no formal organization developing SBCL, but if you need a
47 paid support arrangement or custom SBCL development, we maintain the
48 list of companies and consultants below. Use it to identify service
49 providers with appropriate skills and interests, and contact them
52 The SBCL project cannot verify the accuracy of the information or the
53 competence of the people listed, and they have provided their own
54 blurbs below: you must make your own judgement of suitability from the
55 available information - refer to the links they provide, the CREDITS
56 file, mailing list archives, CVS commit messages, and so on. Please
57 feel free to ask for advice on the sbcl-help list.
59 (At present, no companies or consultants wish to advertise paid support
60 or custom SBCL development in this manual).
63 @comment node-name, next, previous, up
64 @section Reporting Bugs
66 SBCL uses Launchpad to track bugs. The bug database is available at
68 @urlline{https://bugs.launchpad.net/sbcl}
70 Reporting bugs there requires registering at Launchpad. However, bugs
71 can also be reported on the mailing list @strong{sbcl-bugs}, which is
72 moderated but does @emph{not} require subscribing.
74 Simply send email to @email{sbcl-bugs@@lists.sourceforge.net} and the
75 bug will be checked and added to Launchpad by SBCL maintainers.
77 @subsection How to Report Bugs Effectively
79 Please include enough information in a bug report that someone reading
80 it can reproduce the problem, i.e. don't write
83 Subject: apparent bug in PRINT-OBJECT (or *PRINT-LENGTH*?)
84 PRINT-OBJECT doesn't seem to work with *PRINT-LENGTH*. Is this a bug?
90 Subject: apparent bug in PRINT-OBJECT (or *PRINT-LENGTH*?)
91 In sbcl-1.2.3 running under OpenBSD 4.5 on my Alpha box, when
92 I compile and load the file
93 (DEFSTRUCT (FOO (:PRINT-OBJECT (LAMBDA (X Y)
94 (LET ((*PRINT-LENGTH* 4))
97 then at the command line type
99 the program loops endlessly instead of printing the object.
102 A more in-depth discussion on reporting bugs effectively can be found
105 @urlline{http://www.chiark.greenend.org.uk/~sgtatham/bugs.html}.
107 @subsection Signal Related Bugs
109 If you run into a signal related bug, you are getting fatal errors
110 such as @code{signal N is [un]blocked} or just hangs, and you want to
111 send a useful bug report then:
117 Compile SBCL with ldb support (feature @code{:sb-ldb}, see
118 @file{base-target-features.lisp-expr}) and change @code{#define QSHOW_SIGNAL 0} to
119 @code{#define QSHOW_SIGNAL 1} in @file{src/runtime/runtime.h}.
122 Isolate a smallish test case, run it.
125 If it just hangs kill it with sigabrt: @code{kill -ABRT <pidof sbcl>}.
128 Print the backtrace from ldb by typing @code{ba}.
131 Attach gdb: @code{gdb -p <pidof sbcl>} and get backtraces for all threads:
132 @code{thread apply all ba}.
135 If multiple threads are in play then still in gdb, try to get Lisp
136 backtrace for all threads: @code{thread apply all call
137 backtrace_from_fp($ebp, 100)}. Substitute @code{$ebp} with @code{$rbp}
138 on x86-64. The backtraces will appear in the stdout of the SBCL
142 Send a report with the backtraces and the output (both stdout and
143 stderr) produced by SBCL.
146 Don't forget to include OS and SBCL version.
149 If available, include information on outcome of the same test with
150 other versions of SBCL, OS, ...