#553 crash during make check on solaris

segfault
open
Bruno Haible
clisp (525)
5
2014-08-01
2010-06-15
No

i've built clisp 2.48 on sparc solaris 8 using gcc 3.4.5, and when running "make check", there was a crash:

================================
(PROGN (DEFGENERIC TESTGF00 (&REST ARGS &KEY) (:METHOD (&REST ARGS))) (TESTGF00 'A 'B))
[SIMPLE-KEYWORD-ERROR]: TESTGF00-<EMF-1>-1: illegal keyword/value pair A, B in argument list.
The allowed keywords are NIL

*** - Internal error: statement in file "/opt/home/vvv/src/clisp/clisp-2.48/src/debug.d", line 1138 has been reached!!
Please see <http://clisp.cons.org/impnotes/faq.html#faq-bugs> for bug reporting instructions.

*** - Internal error: statement in file "/opt/home/vvv/src/clisp/clisp-2.48/src/debug.d", line 1138 has been reached!!
Please see <http://clisp.cons.org/impnotes/faq.html#faq-bugs> for bug reporting instructions.

*** - Internal error: statement in file "/opt/home/vvv/src/clisp/clisp-2.48/src/debug.d", line 1138 has been reached!!
Please see <http://clisp.cons.org/impnotes/faq.html#faq-bugs> for bug reporting instructions.

*** - Internal error: statement in file "/opt/home/vvv/src/clisp/clisp-2.48/src/debug.d", line 1138 has been reached!!
Please see <http://clisp.cons.org/impnotes/faq.html#faq-bugs> for bug reporting instructions.

*** - Internal error: statement in file "/opt/home/vvv/src/clisp/clisp-2.48/src/debug.d", line 1138 has been reached!!
Please see <http://clisp.cons.org/impnotes/faq.html#faq-bugs> for bug reporting instructions.

*** - Internal error: statement in file "/opt/home/vvv/src/clisp/clisp-2.48/src/debug.d", line 1138 has been reached!!
Please see <http://clisp.cons.org/impnotes/faq.html#faq-bugs> for bug reporting instructions.

*** - Internal error: statement in file "/opt/home/vvv/src/clisp/clisp-2.48/src/debug.d", line 1138 has been reached!!
Please see <http://clisp.cons.org/impnotes/faq.html#faq-bugs> for bug reporting instructions.

*** - Internal error: statement in file "/opt/home/vvv/src/clisp/clisp-2.48/src/debug.d", line 1138 has been reached!!
Please see <http://clisp.cons.org/impnotes/faq.html#faq-bugs> for bug reporting instructions.

*** - Internal error: statement in file "/opt/home/vvv/src/clisp/clisp-2.48/src/debug.d", line 1138 has been reached!!
Please see <http://clisp.cons.org/impnotes/faq.html#faq-bugs> for bug reporting instructions.

*** - handle_fault error2 ! address = 0x2613 not in [0x1a7d0000,0x1a911660) !
SIGSEGV cannot be cured. Fault address = 0x2613.
GC count: 71
Space collected by GC: 0 36937040
Run time: 139 710000
Real time: 149 541188
GC time: 4 580000
Permanently allocated: 85696 bytes.
Currently in use: 2462560 bytes.
Free space: 0 bytes.
make[1]: *** [tests] Segmentation Fault (core dumped)
================================

$ /opt/SUNWspro/bin/dbx ./lisp.run ./tests/core
For information about new features see `help changes'
To remove this message, put `dbxenv suppress_startup_message 7.5' in your .dbxrc
Reading lisp.run
core file header read successfully
Reading ld.so.1
Reading libncurses.so.5
Reading libdl.so.1
Reading libnsl.so.1
Reading libsocket.so.1
Reading libc.so.1
Reading libmp.so.2
Reading libc_psr.so.1
Reading nss_files.so.1
program terminated by signal SEGV (no mapping at the fault address)
Current function is gc_mark
265 switch (as_oint(curr) & nonimmediate_heapcode_mask) {
(dbx) where
=>[1] gc_mark(obj = 0x260d), line 265 in "spvw_gcmark.d"
[2] gar_col_normal(), line 159 in "spvw_garcol.d"
[3] do_gar_col_simple(), line 2890 in "spvw_garcol.d"
[4] with_gc_statistics(fun = 0x32c50 = &`lisp.run`spvw.c`do_gar_col_simple()), line 3165 in "predtype.d"
[5] gar_col_simple(), line 2898 in "spvw_garcol.d"
[6] make_space_gc_true(need = 16U, heapptr = 0x1c1ac8), line 244 in "spvw_allocate.d"
[7] allocate_vector(len = 2U), line 107 in "spvw_typealloc.d"
[8] vectorof(len = 2U), line 170 in "array.d"
[9] C_vector(argcount = 2U, rest_args_pointer = 0x1c696c), line 185 in "array.d"
[10] interpret_bytecode_(closure_in = 0x1a858769, codeptr = 0x1a858710, byteptr_in = 0x1a858734 "\xad\xadp^C\x93"), line 6811 in "eval.d"
[11] funcall_closure(closure = 0x1a858769, args_on_stack = 1U), line 5629 in "eval.d"
[12] interpret_bytecode_(closure_in = 0x1a858b01, codeptr = 0x1a858830, byteptr_in = 0x1a8588e5 "B^B\x92"), line 6784 in "eval.d"
[13] funcall_closure(closure = 0x1a858b01, args_on_stack = 1U), line 5629 in "eval.d"
[14] interpret_bytecode_(closure_in = 0x1a85efa1, codeptr = 0x1a85ef40, byteptr_in = 0x1a85ef96 "^Y^B^N^E^[T"), line 6784 in "eval.d"
[15] funcall_closure(closure = 0x1a85efa1, args_on_stack = 0), line 5629 in "eval.d"
[16] interpret_bytecode_(closure_in = 0x1a858b01, codeptr = 0x1a858830, byteptr_in = 0x1a85888a "^[\x80\x85\xb5\x8dY^F\xb58^A\x8d_p\xb5\x89\nl\xb58^A\x8d_\x80m\xb58^Aq_k"), line 6845 in "eval.d"
[17] funcall_closure(closure = 0x1a858b01, args_on_stack = 2U), line 5629 in "eval.d"
[18] interpret_bytecode_(closure_in = 0x1a85e929, codeptr = 0x1a85e240, byteptr_in = 0x1a85e3ee "\xc2fWp/\xc0o/\xbe\xbep0\xbco/\xbao/\xb8\xb8p0\xb6\xb6p0s^G#k^L\xad\xb0\xb2n^C1\x992f^Zf^Zf^Zs^B^[\xc3\xc3\xc2\xc4\xc3\xc3n^F3\x992\xbf\xbf\xbfs^B^[\xbc\xbc\xbb\xbd\xbc\xbcn^F3\x994\xb8\xb8s^A^[\xb4e5k\nf;^C6]]z\x92a\x81\xf7^C8^T{^C3^G#z\xbfc\xbf8^Gri\xb8c\xb88^Gri\xb5\xb3{^As^F#e9c\xafn^C:\x93^C\n\xb1\xb0\xa5z1\xb6\xb2\xda1\xb6f^Z\xc4\xc2\xc0\xbe\xbc\xbas^G#/;\xado<e=\xaee>\xaf2D^V^A^U^V^[^R^H^V^QQ^T\xc3\x8e^^^Gk^C^N?]^O?k^C\xe1\xade>\xb02D^V^A\x93^S^Zk^Ce@\xc18^Fr}\xe1\xae\xeerC\xads^A8\xe1\xaf\xee\xaf2D^V^Ce=\xad\xdarC%A\x80Pk^C\xe1\xad\xee\xe72D^V^Ak^C\xe1\xad\xef\xe72D^V^Ak^C\xe1\xad\xf0d2D^V^Ak^C\xe1\xad\xf1c2D^V^Ak^C\xe1\xad\xf2c2D^V^Ak^C\xe1\xad\xf4c2D^V^Ak^C\xe1\xade>\x81C"), line 6793 in "eval.d"
[19] funcall_closure(closure = 0x1a85e929, args_on_stack = 4U), line 5629 in "eval.d"
[20] interpret_bytecode_(closure_in = 0x1a861701, codeptr = 0x1a8616c0, byteptr_in = 0x1a8616ef "^N^C^\^C\xac/^G\xac/^H^V^A^Q^Y^A"), line 6778 in "eval.d"
[21] funcall_closure(closure = 0x1a861701, args_on_stack = 0), line 5629 in "eval.d"
[22] interpret_bytecode_(closure_in = 0x1a858b01, codeptr = 0x1a858830, byteptr_in = 0x1a85888a "^[\x80\x85\xb5\x8dY^F\xb58^A\x8d_p\xb5\x89\nl\xb58^A\x8d_\x80m\xb58^Aq_k"), line 6845 in "eval.d"
[23] funcall_closure(closure = 0x1a858b01, args_on_stack = 1U), line 5629 in "eval.d"
[24] interpret_bytecode_(closure_in = 0x1a85efa1, codeptr = 0x1a85ef40, byteptr_in = 0x1a85ef96 "^Y^B^N^E^[T"), line 6784 in "eval.d"
[25] funcall_closure(closure = 0x1a85efa1, args_on_stack = 0), line 5629 in "eval.d"
[26] interpret_bytecode_(closure_in = 0x1a858b01, codeptr = 0x1a858830, byteptr_in = 0x1a85888a "^[\x80\x85\xb5\x8dY^F\xb58^A\x8d_p\xb5\x89\nl\xb58^A\x8d_\x80m\xb58^Aq_k"), line 6845 in "eval.d"
[27] funcall_closure(closure = 0x1a858b01, args_on_stack = 1U), line 5629 in "eval.d"
[28] interpret_bytecode_(closure_in = 0x1a860899, codeptr = 0x1a8607b0, byteptr_in = 0x1a860830 "\xaf\xafp^S\xac\xb2\xb4n^C^T\x92+\x80H\xb1\xb1\xb1-^C^V^T\xaf\xf1k^Df+k^X{^D{^Bs^C#\x92+9^C^Z^T\xb1\xb0{^As^B#o^[\xb3p^\\xaen^C^]\x93^B^K\xb3\xaf\xa7z1\xb6\xb4e^^1\xb6\xb2/^_^U^V\n^R^D^V^E^R^D^Y^E\x99^U\xb2\xb23^A^[^[\xff\xb4^C^Y^[E"), line 6787 in "eval.d"
[29] funcall_closure(closure = 0x1a860899, args_on_stack = 1U), line 5629 in "eval.d"
[30] interpret_bytecode_(closure_in = 0x1a855ef9, codeptr = 0x1a855ea8, byteptr_in = 0x1a855ebd "^Y^A"), line 6784 in "eval.d"
[31] funcall_closure(closure = 0x1a855ef9, args_on_stack = 0), line 5629 in "eval.d"
[32] interpret_bytecode_(closure_in = 0x1a858b01, codeptr = 0x1a858830, byteptr_in = 0x1a85888a "^[\x80\x85\xb5\x8dY^F\xb58^A\x8d_p\xb5\x89\nl\xb58^A\x8d_\x80m\xb58^Aq_k"), line 6845 in "eval.d"
[33] funcall_closure(closure = 0x1a858b01, args_on_stack = 1U), line 5629 in "eval.d"
[34] interpret_bytecode_(closure_in = 0x1a85efa1, codeptr = 0x1a85ef40, byteptr_in = 0x1a85ef96 "^Y^B^N^E^[T"), line 6784 in "eval.d"
[35] funcall_closure(closure = 0x1a85efa1, args_on_stack = 0), line 5629 in "eval.d"
[36] interpret_bytecode_(closure_in = 0x1a858b01, codeptr = 0x1a858830, byteptr_in = 0x1a85888a "^[\x80\x85\xb5\x8dY^F\xb58^A\x8d_p\xb5\x89\nl\xb58^A\x8d_\x80m\xb58^Aq_k"), line 6845 in "eval.d"
[37] funcall_closure(closure = 0x1a858b01, args_on_stack = 2U), line 5629 in "eval.d"
[38] interpret_bytecode_(closure_in = 0x1a85e929, codeptr = 0x1a85e240, byteptr_in = 0x1a85e3ee "\xc2fWp/\xc0o/\xbe\xbep0\xbco/\xbao/\xb8\xb8p0\xb6\xb6p0s^G#k^L\xad\xb0\xb2n^C1\x992f^Zf^Zf^Zs^B^[\xc3\xc3\xc2\xc4\xc3\xc3n^F3\x992\xbf\xbf\xbfs^B^[\xbc\xbc\xbb\xbd\xbc\xbcn^F3\x994\xb8\xb8s^A^[\xb4e5k\nf;^C6]]z\x92a\x81\xf7^C8^T{^C3^G#z\xbfc\xbf8^Gri\xb8c\xb88^Gri\xb5\xb3{^As^F#e9c\xafn^C:\x93^C\n\xb1\xb0\xa5z1\xb6\xb2\xda1\xb6f^Z\xc4\xc2\xc0\xbe\xbc\xbas^G#/;\xado<e=\xaee>\xaf2D^V^A^U^V^[^R^H^V^QQ^T\xc3\x8e^^^Gk^C^N?]^O?k^C\xe1\xade>\xb02D^V^A\x93^S^Zk^Ce@\xc18^Fr}\xe1\xae\xeerC\xads^A8\xe1\xaf\xee\xaf2D^V^Ce=\xad\xdarC%A\x80Pk^C\xe1\xad\xee\xe72D^V^Ak^C\xe1\xad\xef\xe72D^V^Ak^C\xe1\xad\xf0d2D^V^Ak^C\xe1\xad\xf1c2D^V^Ak^C\xe1\xad\xf2c2D^V^Ak^C\xe1\xad\xf4c2D^V^Ak^C\xe1\xade>\x81C"), line 6793 in "eval.d"
[39] funcall_closure(closure = 0x1a85e929, args_on_stack = 2U), line 5629 in "eval.d"
[40] interpret_bytecode_(closure_in = 0x1a8732b1, codeptr = 0x1a873190, byteptr_in = 0x1a8731a9 "\xdc\xad\xdd\x8fC^L\xdeo^E/^F^[s\xe2o^E/^F\xdc\xad\xe1\x8eCu\xdc\xad\xe3\x8fC"\xe4o^E/^F^[s"), line 6793 in "eval.d"
[41] funcall_closure(closure = 0x1a8732b1, args_on_stack = 2U), line 5629 in "eval.d"
[42] interpret_bytecode_(closure_in = 0x1a873669, codeptr = 0x1a8735d8, byteptr_in = 0x1a873629 "\x935^Ek^O\x8f\xac^E^U^R^Q^Y^If<^D<z\xee\xef\xae\xf0\xb0\xf1o^X\xb23^E^_"), line 6793 in "eval.d"
[43] funcall_closure(closure = 0x1a873669, args_on_stack = 0), line 5629 in "eval.d"
[44] interpret_bytecode_(closure_in = 0x1a873841, codeptr = 0x1a8736e0, byteptr_in = 0x1a873710 "^Y^H"), line 6775 in "eval.d"
[45] funcall_closure(closure = 0x1a873841, args_on_stack = 1U), line 5629 in "eval.d"
[46] compile_eval_form(closure_name = 0x1a91d289), line 390 in "control.d"
[47] C_let(), line 669 in "control.d"
[48] eval1(form = 0x66941da3), line 3261 in "eval.d"
[49] eval(form = 0x66941da3), line 2964 in "eval.d"
[50] eval_5env(form = 0x66941da3, var_env = 0x1b3191, fun_env = 0x1b3191, block_env = 0x1b3191, go_env = 0x1b3191, decl_env = 0x669f162b), line 1081 in "eval.d"
[51] interpret_bytecode_(closure_in = 0x1a8911d1, codeptr = 0x1a891120, byteptr_in = 0x1a89114e "^[^E\xe2o^I/\n\xacrB\xe1\x91^A3s^U^Y^D^Y\xdf\x91`"), line 6799 in "eval.d"
[52] funcall_closure(closure = 0x1a8911d1, args_on_stack = 1U), line 5629 in "eval.d"
[53] interpret_bytecode_(closure_in = 0x1a89b091, codeptr = 0x1a89b078, byteptr_in = 0x1a89b08d "^Y^B"), line 6784 in "eval.d"
[54] funcall_closure(closure = 0x1a89b091, args_on_stack = 1U), line 5629 in "eval.d"
[55] interpret_bytecode_(closure_in = 0x1a89b0e1, codeptr = 0x1a89cd50, byteptr_in = 0x1a89cd6b "\xadr9i^A^Ai"), line 7783 in "eval.d"
[56] funcall_closure(closure = 0x1a89b0e1, args_on_stack = 1U), line 5629 in "eval.d"
[57] interpret_bytecode_(closure_in = 0x1a8957a9, codeptr = 0x1a895720, byteptr_in = 0x1a895742 "\xac\x8f/\n\xae\xad0^F^Y^C\x98^B^[n\xdeo^E\xdd\xb0\xaf3^C^^"), line 6852 in "eval.d"
[58] funcall_closure(closure = 0x1a8957a9, args_on_stack = 1U), line 5629 in "eval.d"
[59] interpret_bytecode_(closure_in = 0x1a895701, codeptr = 0x1a8956b0, byteptr_in = 0x1a8956c5 "\x9e^Y^B^Y\xdf\xd6\xc8"), line 6784 in "eval.d"
[60] funcall_closure(closure = 0x1a895701, args_on_stack = 1U), line 5629 in "eval.d"
[61] interpret_bytecode_(closure_in = 0x1a8dd741, codeptr = 0x1a89b250, byteptr_in = 0x1 "<bad address 0x1>"), line 7783 in "eval.d"
[62] funcall_closure(closure = 0x1a8dd741, args_on_stack = 1U), line 5629 in "eval.d"
[63] invoke_handlers(cond = 0x1a976a91), line 790 in "eval.d"
[64] C_clcs_signal(argcount = 0, rest_args_pointer = 0x1c6214), line 817 in "error.d"
[65] funcall_subr(fun = 0x1ad2d2, args_on_stack = 0), line 5221 in "eval.d"
[66] signal_and_debug(condition = 0x1a976a91), line 202 in "error.d"
[67] end_error(stackptr = 0x1c61f4, start_driver_p = 1U), line 342 in "error.d"
[68] error(errortype = serious_condition, errorstring = 0x14ee78 "Internal error: statement in file ~S, line ~S has been reached!!\nPlease see <http://clisp.cons.org/impnotes/faq.html#faq-bugs> for bug reporting instructions."), line 374 in "error.d"
[69] error_notreached(file = 0x198250 "/opt/home/vvv/src/clisp/clisp-2.48/src/debug.d", line = 145671U), line 1124 in "spvw.d"
[70] top_of_back_trace_frame(bt = 0xffbe6c98), line 1138 in "debug.d"
[71] unwind(), line 447 in "eval.d"
[72] quit(), line 4014 in "spvw.d"
[73] interpret_bytecode_(closure_in = 0x1a9127b1, codeptr = 0x1a8dd928, byteptr_in = 0x1a8dd964 "^Q^Y^D"), line 7319 in "eval.d"
[74] funcall_closure(closure = 0x1a9127b1, args_on_stack = 1U), line 5629 in "eval.d"
[75] interpret_bytecode_(closure_in = 0x1a975509, codeptr = 0x1a9754e8, byteptr_in = 0x1a9754fe "\xdb\xae6^A^Y^B"), line 6845 in "eval.d"
[76] funcall_closure(closure = 0x1a975509, args_on_stack = 1U), line 5629 in "eval.d"
[77] interpret_bytecode_(closure_in = 0x1a8dd741, codeptr = 0x1a9739d0, byteptr_in = 0x1a9739fe ""), line 7783 in "eval.d"
[78] funcall_closure(closure = 0x1a8dd741, args_on_stack = 1U), line 5629 in "eval.d"
[79] interpret_bytecode_(closure_in = 0x1a8dd741, codeptr = 0x1a89b250, byteptr_in = 0x1 "<bad address 0x1>"), line 7783 in "eval.d"
[80] funcall_closure(closure = 0x1a8dd741, args_on_stack = 1U), line 5629 in "eval.d"
[81] invoke_handlers(cond = 0x1a972099), line 790 in "eval.d"
[82] C_clcs_signal(argcount = 0, rest_args_pointer = 0x1c6214), line 817 in "error.d"
[83] funcall_subr(fun = 0x1ad2d2, args_on_stack = 0), line 5221 in "eval.d"
[84] signal_and_debug(condition = 0x1a972099), line 202 in "error.d"
[85] end_error(stackptr = 0x1c61f4, start_driver_p = 1U), line 342 in "error.d"
[86] error(errortype = serious_condition, errorstring = 0x14ee78 "Internal error: statement in file ~S, line ~S has been reached!!\nPlease see <http://clisp.cons.org/impnotes/faq.html#faq-bugs> for bug reporting instructions."), line 374 in "error.d"
[87] error_notreached(file = 0x198250 "/opt/home/vvv/src/clisp/clisp-2.48/src/debug.d", line = 145671U), line 1124 in "spvw.d"
[88] top_of_back_trace_frame(bt = 0xffbe6c98), line 1138 in "debug.d"
[89] unwind(), line 447 in "eval.d"
[90] quit(), line 4014 in "spvw.d"
[91] interpret_bytecode_(closure_in = 0x1a9127b1, codeptr = 0x1a8dd928, byteptr_in = 0x1a8dd964 "^Q^Y^D"), line 7319 in "eval.d"
[92] funcall_closure(closure = 0x1a9127b1, args_on_stack = 1U), line 5629 in "eval.d"
[93] interpret_bytecode_(closure_in = 0x1a970b11, codeptr = 0x1a970af0, byteptr_in = 0x1a970b06 "\xdb\xae6^A^Y^B"), line 6845 in "eval.d"
[94] funcall_closure(closure = 0x1a970b11, args_on_stack = 1U), line 5629 in "eval.d"
[95] interpret_bytecode_(closure_in = 0x1a8dd741, codeptr = 0x1a96efd8, byteptr_in = 0x1a96f006 ""), line 7783 in "eval.d"
[96] funcall_closure(closure = 0x1a8dd741, args_on_stack = 1U), line 5629 in "eval.d"
[97] interpret_bytecode_(closure_in = 0x1a8dd741, codeptr = 0x1a89b250, byteptr_in = 0x1 "<bad address 0x1>"), line 7783 in "eval.d"
[98] funcall_closure(closure = 0x1a8dd741, args_on_stack = 1U), line 5629 in "eval.d"
[99] invoke_handlers(cond = 0x1a96d6a1), line 790 in "eval.d"
[100] C_clcs_signal(argcount = 0, rest_args_pointer = 0x1c6214), line 817 in "error.d"
(dbx) exit

Discussion

  • Sam Steingold
    Sam Steingold
    2010-06-15

    thanks for your bug report.
    please go to frame [70] (top_of_back_trace_frame) and do
    print nobject_out(0,fun)
    print back_trace_out(0,0)
    print object_out(fun)

     
  • dbx cannot execute the print calls on a core file:

    =========================
    $ /opt/SUNWspro/bin/dbx ./boot/lisp.run ./tests/core
    For information about new features see `help changes'
    To remove this message, put `dbxenv suppress_startup_message 7.5' in your .dbxrc
    Reading lisp.run
    core file header read successfully
    Reading ld.so.1
    Reading libncurses.so.5
    Reading libdl.so.1
    Reading libnsl.so.1
    Reading libsocket.so.1
    Reading libc.so.1
    Reading libmp.so.2
    Reading libc_psr.so.1
    Reading nss_files.so.1
    program terminated by signal SEGV (no mapping at the fault address)
    Current function is gc_mark
    265 switch (as_oint(curr) & nonimmediate_heapcode_mask) {
    (dbx) frame 70
    Current function is top_of_back_trace_frame
    1138 NOTREACHED;
    (dbx) print nobject_out(0,fun)
    dbx: program is not active -- cannot do calls
    (dbx)
    =========================

    which command could i run to get the same crash? preferably, not re-running all of the tests, but just the one which caused the crash.

     
  • Sam Steingold
    Sam Steingold
    2010-06-24

    the last test printer should do the trick:
    (PROGN (DEFGENERIC TESTGF00 (&REST ARGS &KEY) (:METHOD (&REST ARGS))) (TESTGF00 'A 'B))

     
  • $ ./lisp.run -B . -x "(PROGN (DEFGENERIC TESTGF00 (&REST ARGS &KEY) (:METHOD (&REST ARGS))) (TESTGF00 'A 'B))"
    WARNING: locale: no encoding 646, using ISO-8859-1
    WARNING: locale: no encoding 646, using ISO-8859-1
    i i i i i i i ooooo o ooooooo ooooo ooooo
    I I I I I I I 8 8 8 8 8 o 8 8
    I \ `+' / I 8 8 8 8 8 8
    \ `-+-' / 8 8 8 ooooo 8oooo
    `-__|__-' 8 8 8 8 8
    | 8 o 8 8 o 8 8
    ------+------ ooooo 8oooooo ooo8ooo ooooo 8

    Welcome to GNU CLISP 2.48 (2009-07-28) <http://clisp.cons.org/>

    Copyright (c) Bruno Haible, Michael Stoll 1992, 1993
    Copyright (c) Bruno Haible, Marcus Daniels 1994-1997
    Copyright (c) Bruno Haible, Pierpaolo Bernardi, Sam Steingold 1998
    Copyright (c) Bruno Haible, Sam Steingold 1999-2000
    Copyright (c) Sam Steingold, Bruno Haible 2001-2009

    Type :h and hit Enter for context help.

    *** - EVAL: undefined function DEFGENERIC
    Bye.

     
  • ok, when i run "clisp" instead of "lisp.run", i get a better result:

    $ ./clisp -x "(PROGN (DEFGENERIC TESTGF00 (&REST ARGS &KEY) (:METHOD (&REST ARGS))) (TESTGF00 'A 'B))"
    WARNING: locale: no encoding 646, using ISO-8859-1
    i i i i i i i ooooo o ooooooo ooooo ooooo
    I I I I I I I 8 8 8 8 8 o 8 8
    I \ `+' / I 8 8 8 8 8 8
    \ `-+-' / 8 8 8 ooooo 8oooo
    `-__|__-' 8 8 8 8 8
    | 8 o 8 8 o 8 8
    ------+------ ooooo 8oooooo ooo8ooo ooooo 8

    Welcome to GNU CLISP 2.48 (2009-07-28) <http://clisp.cons.org/>

    Copyright (c) Bruno Haible, Michael Stoll 1992, 1993
    Copyright (c) Bruno Haible, Marcus Daniels 1994-1997
    Copyright (c) Bruno Haible, Pierpaolo Bernardi, Sam Steingold 1998
    Copyright (c) Bruno Haible, Sam Steingold 1999-2000
    Copyright (c) Sam Steingold, Bruno Haible 2001-2009

    Type :h and hit Enter for context help.

    *** - TESTGF00-<EMF-1>-1: illegal keyword/value pair A, B in argument list.
    The allowed keywords are NIL

    Bye.

    but there is no crash.
    what command is run to perform all tests?

     
  • Sam Steingold
    Sam Steingold
    2010-06-24

    use "make check" to run all tests. also
    $ ./clisp -norc -K boot -i tests/tests -x '(cd "tests/") (run-all-tests)'
    see also .gdbinit (probably won't work under dbx)
    http://clisp.cons.org/impnotes/faq.html#faq-debug

     
  • when i try to run all checks as you specified under dbx, it performs an exec() of lisp.run and then immediately
    segfaults, probably because of some file handle redirections performed by dbx:

    $ dbx ./clisp
    For information about new features see `help changes'
    To remove this message, put `dbxenv suppress_startup_message 7.5' in your .dbxrc
    Reading clisp
    Reading ld.so.1
    Reading libncurses.so.5
    Reading libdl.so.1
    Reading libnsl.so.1
    Reading libsocket.so.1
    Reading libc.so.1
    Reading libmp.so.2
    Reading libc_psr.so.1
    (dbx) run -norc -K boot -i tests/tests -x '(cd "tests/") (run-all-tests)'
    Running: clisp -norc -K boot -i tests/tests -x "(cd "tests/") (run-all-tests)"
    (process id 11168)
    dbx: process 11168 about to exec("/opt/home/vvv/src/clisp.new/clisp-build/boot/lisp.run")
    dbx: program "/opt/home/vvv/src/clisp.new/clisp-build/boot/lisp.run" just exec'ed
    dbx: to go back to the original program use "debug $oprog"
    Reading lisp.run
    stopped in main at line 2332 in file "spvw.d"
    2332 begin_system_call();
    (dbx) cont
    signal SEGV (access to address exceeded protections) in closed_buffered at line 8317 in file "stream.d"
    8317 BufferedStream_channel(stream) = NIL; /* Handle becomes invalid */
    (dbx) quit

     
  • Sam Steingold
    Sam Steingold
    2010-06-24

    also:
    1. about "lisp.run" vs "clisp": http://clisp.cons.org/impnotes/faq.html#faq-defun
    2. please use cvs head instead of the released version. it will simplify debugging for me.