Subject: segfault during snarf-check-and-output-texi on x86_64-darwin11 (guile-2.0.9)
From: David Fang <[email-masked]>
To: [email-masked]
Date: Tue, 29 Oct 2013 17:31:23 -0400 (EDT)
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi guile team,

platform: x86_64-darwin11 (OS 10.7)
compiler:
Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn)
Target: x86_64-apple-darwin11.4.2
Thread model: posix

CFLAGS: -g -O2
configured with options "'--prefix=/sw' '--infodir=/sw/share/info' 
'--program-transform-name=s|guile|guile-2.0|g' '-C'"

I've been unable to build guile-procedures.texi due to a segfault while 
guild-snarfing .doc files.  About half of the .doc files in 
$(builddir)/libguile can trigger the segfault when redirected to 
guild snarf-check-and-output-texi.

debug session here: http://paste.lisp.org/display/139704

Here's a gdb stacktrace:

(gdb) run
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program: /sw/src/fink.build/guile20-2.0.9-1/guile-2.0.9/build/libguile/.libs/guile 
GNU Guile 2.0.9
Copyright (C) 1995-2013 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.
scheme@(guile-user)> (use-modules (scripts snarf-check-and-output-texi))  (with-input-from-file "objprop.doc" snarf-check-and-output-texi)

object-properties
@c snarfed from ../../libguile/objprop.c:43
@deffn {Scheme Procedure} object-properties obj
Return @var{obj}'s property list.
@end deffn

set-object-properties!
@c snarfed from ../../libguile/objprop.c:59
@deffn {Scheme Procedure} set-object-properties! obj alist
Set @var{obj}'s property list to @var{alist}.
@end deffn

object-property
@c snarfed from ../../libguile/objprop.c:72
@deffn {Scheme Procedure} object-property obj key
Return the property of @var{obj} with name @var{key}.
@end deffn

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000000
scm_iprlist (hdr=<value temporarily unavailable, due to optimizations>, exp=0x196175220, tlr=41, port=0x19617ca30, pstate=0x10115a240) at ../../libguile/print.c:1261
1261      while (scm_is_pair (hare))
(gdb) where
#0  scm_iprlist (hdr=<value temporarily unavailable, due to optimizations>, exp=0x196175220, tlr=41, port=0x19617ca30, pstate=0x10115a240) at ../../libguile/print.c:1261
#1  0x000000010006af59 in iprin1 (exp=<value temporarily unavailable, due to optimizations>, port=0x19617ca30, pstate=0x10115a240) at ../../libguile/print.c:551
#2  0x000000010006bd8a in scm_prin1 (exp=0x196175220, port=<value temporarily unavailable, due to optimizations>, writingp=1) at ../../libguile/print.c:782
#3  0x000000010006cdcc in scm_write (obj=0x196175220, port=<value temporarily unavailable, due to optimizations>) at ../../libguile/print.c:1365
#4  0x0000000100097394 in scm_object_to_string (obj=<value temporarily unavailable, due to optimizations>, printer=<value temporarily unavailable, due to optimizations>) at ../../libguile/strports.c:402
#5  0x00000001000ada45 in vm_debug_engine (vm=0x1011ae5b0, program=0x10012faa8, argv=<value temporarily unavailable, due to optimizations>, nargs=<value temporarily unavailable, due to optimizations>) at vm-i-system.c:855
#6  0x00000001000a1438 in scm_c_vm_run (vm=0x1011ae5b0, program=0x10012faa8, argv=0x7fff5fbfc6c0, nargs=1) at ../../libguile/vm.c:753
#7  0x000000010001ee11 in eval (x=0x11ca3eb80, env=0x19617ca70) at ../../libguile/eval.c:341
#8  0x000000010001e757 in eval (x=0x11ca3e890, env=0x19617ca70) at ../../libguile/eval.c:251
#9  0x000000010001e6e1 in eval (x=0x11ca3e170, env=0x19617ca90) at ../../libguile/eval.c:925
#10 0x000000010001e3a9 in eval (x=0x11ca2b340, env=0x19617cc50) at ../../libguile/eval.c:235
#11 0x000000010001e3a9 in eval (x=0x11ca3ed20, env=0x1961776d0) at ../../libguile/eval.c:235
#12 0x000000010001e757 in eval (x=0x11ca5c020, env=0x1961778d0) at ../../libguile/eval.c:251
#13 0x000000010001ed6e in eval (x=0x101263630, env=0x196176ea0) at ../../libguile/eval.c:297
#14 0x000000010001ee46 in eval (x=0x10124be20, env=0x196176e70) at ../../libguile/eval.c:462
#15 0x000000010001e3a9 in eval (x=0x102d42a60, env=0x1961399a0) at ../../libguile/eval.c:235
#16 0x000000010001e0f2 in boot_closure_apply (closure=<value temporarily unavailable, due to optimizations>, args=<value temporarily unavailable, due to optimizations>) at ../../libguile/eval.c:964
#17 0x00000001000ada45 in vm_debug_engine (vm=0x1011ae5b0, program=0x1011ab360, argv=<value temporarily unavailable, due to optimizations>, nargs=<value temporarily unavailable, due to optimizations>) at vm-i-system.c:855
#18 0x00000001000a1438 in scm_c_vm_run (vm=0x1011ae5b0, program=0x196178680, argv=0x7fff5fbfce70, nargs=1) at ../../libguile/vm.c:753
#19 0x000000010001d5e6 in scm_call_1 (proc=0x196178680, arg1=0x196139a30) at ../../libguile/eval.c:486
#20 0x0000000100097403 in scm_get_output_string [inlined] () at /sw/src/fink.build/guile20-2.0.9-1/guile-2.0.9/libguile/strports.c:432
#21 0x0000000100097403 in scm_call_with_output_string (proc=0x102d42a60) at ../../libguile/strports.c:434
#22 0x00000001000ada33 in vm_debug_engine (vm=0x1011ae5b0, program=0x10012fa88, argv=<value temporarily unavailable, due to optimizations>, nargs=<value temporarily unavailable, due to optimizations>) at vm-i-system.c:852
#23 0x00000001000a1438 in scm_c_vm_run (vm=0x1011ae5b0, program=0x10012fa88, argv=0x7fff5fbfd100, nargs=1) at ../../libguile/vm.c:753
#24 0x000000010001ee11 in eval (x=0x11f807af0, env=0x196139a70) at ../../libguile/eval.c:341
#25 0x000000010001e757 in eval (x=0x11fb28390, env=0x196139aa0) at ../../libguile/eval.c:251
#26 0x000000010001e3a9 in eval (x=0x101263fe0, env=0x196139f00) at ../../libguile/eval.c:235
#27 0x000000010001ed6e in eval (x=0x101263fb0, env=0x196139f00) at ../../libguile/eval.c:297
#28 0x000000010001e0f2 in boot_closure_apply (closure=<value temporarily unavailable, due to optimizations>, args=<value temporarily unavailable, due to optimizations>) at ../../libguile/eval.c:964
#29 0x00000001000ada45 in vm_debug_engine (vm=0x1011ae5b0, program=0x1011ab360, argv=<value temporarily unavailable, due to optimizations>, nargs=<value temporarily unavailable, due to optimizations>) at vm-i-system.c:855
#30 0x00000001000a1d71 in scm_c_vm_run [inlined] () at /sw/src/fink.build/guile20-2.0.9-1/guile-2.0.9/libguile/vm.c:753
#31 0x00000001000a1d71 in scm_call_with_vm (vm=0x1011ae5b0, proc=0x10125b0a0, args=<value temporarily unavailable, due to optimizations>) at ../../libguile/vm.c:1045
#32 0x000000010001c6da in scm_error_scm (key=0x101263fb0, subr=<value temporarily unavailable, due to optimizations>, message=<value temporarily unavailable, due to optimizations>, args=<value temporarily unavailable, due to optimizations>, data=0x0) at ../../libguile/error.c:95
#33 0x000000010001c6ac in scm_error (key=<value temporarily unavailable, due to optimizations>, subr=<value temporarily unavailable, due to optimizations>, message=<value temporarily unavailable, due to optimizations>, args=<value temporarily unavailable, due to optimizations>, rest=<value temporarily unavailable, due to optimizations>) at ../../libguile/error.c:64
#34 0x000000010001ca3c in scm_wrong_type_arg (subr=<value temporarily unavailable, due to optimizations>, pos=<value temporarily unavailable, due to optimizations>, bad_value=<value temporarily unavailable, due to optimizations>) at ../../libguile/error.c:255
#35 0x00000001000a1dcf in scm_call_with_vm (vm=<value temporarily unavailable, due to optimizations>, proc=<value temporarily unavailable, due to optimizations>, args=0x196115140) at ../../libguile/vm.c:1017
#36 0x000000010001edad in eval (x=0x10124be20, env=0x196177e20) at ../../libguile/eval.c:319
#37 0x000000010001ee46 in eval (x=0x10124be20, env=0x196107ce0) at ../../libguile/eval.c:462
#38 0x000000010001e0f2 in boot_closure_apply (closure=<value temporarily unavailable, due to optimizations>, args=<value temporarily unavailable, due to optimizations>) at ../../libguile/eval.c:964
#39 0x00000001000ada45 in vm_debug_engine (vm=0x1011ae5b0, program=0x1011ab360, argv=<value temporarily unavailable, due to optimizations>, nargs=<value temporarily unavailable, due to optimizations>) at vm-i-system.c:855
#40 0x00000001000a1d71 in scm_c_vm_run [inlined] () at /sw/src/fink.build/guile20-2.0.9-1/guile-2.0.9/libguile/vm.c:753
#41 0x00000001000a1d71 in scm_call_with_vm (vm=0x1011ae5b0, proc=0x196104d20, args=<value temporarily unavailable, due to optimizations>) at ../../libguile/vm.c:1045
#42 0x000000010001e4a8 in eval (x=0x1012688c0, env=0x196107d10) at ../../libguile/eval.c:355
#43 0x000000010001ed6e in eval (x=0x101263630, env=0x196107db0) at ../../libguile/eval.c:297
#44 0x000000010001ee46 in eval (x=0x10124be20, env=0x196107d80) at ../../libguile/eval.c:462
#45 0x000000010001ed6e in eval (x=0x10414be20, env=0x196107f20) at ../../libguile/eval.c:297
#46 0x000000010001ee46 in eval (x=0x10124be20, env=0x196107ef0) at ../../libguile/eval.c:462
#47 0x000000010001e91d in eval (x=0x1012681b0, env=0x196107fd0) at ../../libguile/eval.c:276
#48 0x000000010001ed6e in eval (x=0x11cf98ef0, env=0x196105010) at ../../libguile/eval.c:297
#49 0x000000010001ed6e in eval (x=0x101263630, env=0x196105110) at ../../libguile/eval.c:297
#50 0x000000010001ee46 in eval (x=0x10124be20, env=0x1961050e0) at ../../libguile/eval.c:462
#51 0x000000010001e3a9 in eval (x=0x17b8dcc60, env=0x1961053d0) at ../../libguile/eval.c:235
#52 0x000000010001ed6e in eval (x=0x17b8dcaf0, env=0x17d9a5c80) at ../../libguile/eval.c:297
#53 0x000000010001ee46 in eval (x=0x10124be20, env=0x17d9a5890) at ../../libguile/eval.c:462
#54 0x000000010001ed6e in eval (x=0x17b70db40, env=0x17d860f00) at ../../libguile/eval.c:297
#55 0x000000010001e757 in eval (x=0x17b9d15d0, env=0x17b9d3700) at ../../libguile/eval.c:251
#56 0x000000010001e91d in eval (x=0x1012681b0, env=0x17d7d5e20) at ../../libguile/eval.c:276
#57 0x000000010001ee46 in eval (x=0x10124be20, env=0x17b9d3b90) at ../../libguile/eval.c:462
#58 0x000000010001e2d7 in scm_c_primitive_eval (exp=<value temporarily unavailable, due to optimizations>) at ../../libguile/eval.c:678
#59 0x00000001000ada33 in vm_debug_engine (vm=0x1011ae5b0, program=0x1012385e0, argv=<value temporarily unavailable, due to optimizations>, nargs=<value temporarily unavailable, due to optimizations>) at vm-i-system.c:852
#60 0x00000001000a1438 in scm_c_vm_run (vm=0x1011ae5b0, program=0x1012385e0, argv=0x7fff5fbfe6f8, nargs=1) at ../../libguile/vm.c:753
#61 0x000000010001df35 in scm_primitive_eval [inlined] () at /sw/src/fink.build/guile20-2.0.9-1/guile-2.0.9/libguile/eval.c:685
#62 0x000000010001df35 in scm_eval (exp=0x10a3b1860, module_or_state=<value temporarily unavailable, due to optimizations>) at ../../libguile/eval.c:719
#63 0x000000010007979d in scm_shell (argc=<value temporarily unavailable, due to optimizations>, argv=<value temporarily unavailable, due to optimizations>) at ../../libguile/script.c:441
#64 0x000000010003cc82 in invoke_main_func (body_data=0x7fff5fbfeff0) at ../../libguile/init.c:337
#65 0x00000001000158df in c_body (d=0x7fff5fbfeef0) at ../../libguile/continuations.c:511
#66 0x00000001000a43c4 in vm_regular_engine (vm=0x1011ae5b0, program=0x1011ab360, argv=<value temporarily unavailable, due to optimizations>, nargs=<value temporarily unavailable, due to optimizations>) at vm-i-system.c:855
#67 0x00000001000a1438 in scm_c_vm_run (vm=0x1011ae5b0, program=0x10a3a0700, argv=0x7fff5fbfea10, nargs=0) at ../../libguile/vm.c:753
#68 0x000000010001ee11 in eval (x=0x101263660, env=0x10a3a9320) at ../../libguile/eval.c:341
#69 0x000000010001ed6e in eval (x=0x101263630, env=0x10a3a9320) at ../../libguile/eval.c:297
#70 0x000000010001ee46 in eval (x=0x10124be20, env=0x10a3a92f0) at ../../libguile/eval.c:462
#71 0x000000010001e0f2 in boot_closure_apply (closure=<value temporarily unavailable, due to optimizations>, args=<value temporarily unavailable, due to optimizations>) at ../../libguile/eval.c:964
#72 0x00000001000a43c4 in vm_regular_engine (vm=0x1011ae5b0, program=0x1011ab360, argv=<value temporarily unavailable, due to optimizations>, nargs=<value temporarily unavailable, due to optimizations>) at vm-i-system.c:855
#73 0x00000001000a1438 in scm_c_vm_run (vm=0x1011ae5b0, program=0x10125b0e0, argv=0x7fff5fbfee90, nargs=4) at ../../libguile/vm.c:753
#74 0x000000010001d6fa in scm_call_4 (proc=0x1011ab360, arg1=<value temporarily unavailable, due to optimizations>, arg2=<value temporarily unavailable, due to optimizations>, arg3=<value temporarily unavailable, due to optimizations>, arg4=0x196115110) at ../../libguile/eval.c:507
#75 0x00000001000158b1 in scm_i_with_continuation_barrier [inlined] () at /sw/src/fink.build/guile20-2.0.9-1/guile-2.0.9/libguile/continuations.c:449
#76 0x00000001000158b1 in scm_c_with_continuation_barrier (func=<value temporarily unavailable, due to optimizations>, data=<value temporarily unavailable, due to optimizations>) at ../../libguile/continuations.c:548
#77 0x000000010009d8b7 in with_guile_and_parent (base=<value temporarily unavailable, due to optimizations>, data=0x7fff5fbfefc8) at ../../libguile/threads.c:908
#78 0x00000001002b2f9f in GC_call_with_stack_base ()
#79 0x000000010009ac5b in scm_with_guile (func=0x10009d870 <with_guile_and_parent>, data=0x7fff5fbfefc8) at ../../libguile/threads.c:951
#80 0x000000010003cc47 in scm_boot_guile (argc=<value temporarily unavailable, due to optimizations>, argv=<value temporarily unavailable, due to optimizations>, main_func=0x10a3a0700, closure=0x10a3a06e0) at ../../libguile/init.c:320
#81 0x0000000100000e2f in main (argc=1, argv=0x7fff5fbff060) at ../../libguile/guile.c:108

Any idea what went wrong?

Fang

-- 
David Fang
http://www.csl.cornell.edu/~fang/