This is the mail archive of the guile@cygnus.com mailing list for the guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

the rogue pointer bug (2)


Hi,

Here is the gdb session log that shows where the bug (segfault)
occurs. I still haven't figured out if my C code could be the cause
for it.

Aleksandar

Program received signal SIGSEGV, Segmentation fault.
scm_gc_mark (p=0) at gc.c:585
585       switch (SCM_TYP7 (ptr))
(gdb) up
#1  0xef4f0dbc in marksrcprops (obj=1355136) at srcprop.c:91
91        scm_gc_mark (SRCPROPCOPY (obj));
(gdb) 
#2  0xef4ae408 in scm_gc_mark (p=1355136) at gc.c:846
846               ptr = (scm_smobs[i].mark) (ptr);
(gdb) 
#3  0xef4ae208 in scm_gc_mark (p=498888) at gc.c:793
793                         scm_gc_mark (SCM_GCCDR (kvpair));
(gdb) 
#4  0xef4adb90 in scm_igc (what=0xef4f4368 "cells") at gc.c:542
542         scm_gc_mark (scm_sys_protects[j]);
(gdb) 
#5  0xef4ad978 in scm_gc_for_alloc (ncells=0, freelistp=0x83930) at gc.c:414
414       scm_igc ("cells");
(gdb) 
#6  0xef4ada98 in scm_gc_for_newcell () at gc.c:427
427       scm_gc_for_alloc (1, &scm_freelist);
(gdb) 
#7  0xef4c3b20 in scm_cons (x=1168560, y=10612) at pairs.c:58
58        SCM_NEWCELL (z);
(gdb) 
#8  0xef4a0b4c in scm_ceval (x=625656, env=513480) at eval.c:2176
2176              env = EXTEND_ENV (SCM_CAR (x), scm_cons (t.arg1, SCM_EOL), SCM_ENV (proc));
(gdb) 
#9  0xef4a1fd4 in scm_apply (proc=597240, arg1=513656, args=513552)
    at eval.c:2686
2686            arg1 = EVALCAR (proc, args);
(gdb) 
#10 0xef4dde24 in scm_sym2vcell (sym=1189592, thunk=681456, definep=8564)
    at symbols.c:111
111           SCM var = scm_apply (thunk, sym, scm_cons(definep, scm_listofnull));
(gdb) 
#11 0xef49c938 in scm_lookupcar1 (vloc=1038152, genv=513672) at eval.c:332
332         vcell = scm_sym2vcell (var, top_thunk, SCM_BOOL_F);
(gdb) 
#12 0xef4a0080 in scm_ceval (x=1038152, env=513672) at eval.c:1950
1950              t.lloc = scm_lookupcar1 (x, env);
(gdb) 
#13 0xef4a1fd4 in scm_apply (proc=1037704, arg1=10612, args=513672)
    at eval.c:2686
2686            arg1 = EVALCAR (proc, args);
(gdb) 
#14 0xef6f1a40 in invoke_tcl_command (data=0xfce28, interp=0x1593a8, argc=1, 
    argv=0x16d508) at guile-tcl.c:211
211       result = scm_apply (proc, listify_strings (argc - 1, argv + 1), SCM_EOL);
(gdb) 
#15 0xef0fe434 in Tcl_Eval ()
(gdb) 
#16 0xef0fe8b0 in Tcl_GlobalEval ()
(gdb) 
#17 0xef0186f8 in Tk_BindEvent ()
(gdb) 
#18 0xef01b5d0 in TkBindEventProc ()
(gdb) 
#19 0xef020d28 in Tk_HandleEvent ()
(gdb) 
#20 0xef021188 in WindowEventProc ()
(gdb) 
#21 0xef11fc14 in ServiceEvent ()
(gdb) 
#22 0xef11fecc in Tcl_DoOneEvent ()
(gdb) 
#23 0xef01be38 in Tk_TkwaitCmd ()
(gdb) 
#24 0xef0fe434 in Tcl_Eval ()
(gdb) 
#25 0xef0fe8b0 in Tcl_GlobalEval ()
(gdb) 
#26 0xef6f1784 in scm_tcl_global_eval (tobj=1096792, script=513688)
    at guile-tcl.c:140
140       status = Tcl_GlobalEval (SCM_TERP (tobj), SCM_ROCHARS (script));
(gdb) 
#27 0xef4a0e90 in scm_ceval (x=10612, env=513936) at eval.c:2220
2220              RETURN (SCM_SUBRF (proc) (t.arg1, arg2));
(gdb) 
#28 0xef49fa98 in scm_ceval (x=987320, env=513936) at eval.c:1760
1760              env = EXTEND_ENV (t.arg1, EVALCAR (proc, env), env);
(gdb) 
#29 0xef49f144 in scm_ceval (x=1338040, env=1008904) at eval.c:1602
1602              SIDEVAL (SCM_CAR (x), env);
(gdb) 
#30 0xef49f7e4 in scm_ceval (x=1248688, env=1023296) at eval.c:1709
1709          if (SCM_NFALSEP (EVALCAR (x, env)))
(gdb) 
#31 0xef49f144 in scm_ceval (x=1248392, env=1023296) at eval.c:1602
1602              SIDEVAL (SCM_CAR (x), env);
(gdb) 
#32 0xef49f144 in scm_ceval (x=1031888, env=1028600) at eval.c:1602
1602              SIDEVAL (SCM_CAR (x), env);
(gdb) 
#33 0xef4a0654 in scm_ceval (x=1031864, env=1028600) at eval.c:2099
2099      t.arg1 = EVALCAR (x, env);
(gdb) 
#34 0xef4a1fd4 in scm_apply (proc=1031856, arg1=10612, args=1028600)
    at eval.c:2686
2686            arg1 = EVALCAR (proc, args);
(gdb) 
#35 0xef4e1934 in scm_body_thunk (body_data=0x16e458, jmpbuf=1028632)
    at throw.c:404
404         return scm_apply (c->body_proc, scm_cons (jmpbuf, SCM_EOL), SCM_EOL);
(gdb) 
#36 0xef4e147c in scm_internal_catch (tag=69759, 
    body=0xef4e18e0 <scm_body_thunk>, body_data=0x16e458, 
    handler=0xef4e193c <scm_handle_by_proc>, handler_data=0x16e4bc)
    at throw.c:235
235           answer = body (body_data, jmpbuf);
(gdb) 
#37 0xef4e1bfc in scm_catch (tag=1278872, thunk=1029408, handler=1028648)
    at throw.c:553
553       return scm_internal_catch (tag,
(gdb) 
#38 0xef4a13a8 in scm_ceval (x=1031760, env=1035200) at eval.c:2338
2338            RETURN (SCM_SUBRF (proc) (t.arg1, arg2, scm_eval_args (x, env)));
(gdb) 
#39 0xef4a1fd4 in scm_apply (proc=956880, arg1=10612, args=1035200)
    at eval.c:2686
2686            arg1 = EVALCAR (proc, args);
(gdb) 
#40 0xef6f1a40 in invoke_tcl_command (data=0xe8240, interp=0x1593a8, argc=1, 
    argv=0x16e678) at guile-tcl.c:211
211       result = scm_apply (proc, listify_strings (argc - 1, argv + 1), SCM_EOL);
(gdb) 
#41 0xef0fe434 in Tcl_Eval ()
(gdb) 
#42 0xef0fe8b0 in Tcl_GlobalEval ()
(gdb) 
#43 0xef019d4c in TkCopyAndGlobalEval ()
(gdb) 
#44 0xef045b34 in MenuWidgetCmd ()
(gdb) 
#45 0xef0fe434 in Tcl_Eval ()
(gdb) 
#46 0xef12414c in Tcl_UplevelCmd ()
(gdb) 
#47 0xef0fe434 in Tcl_Eval ()
(gdb) 
#48 0xef101b50 in Tcl_IfCmd ()
(gdb) 
#49 0xef0fe434 in Tcl_Eval ()
(gdb) 
#50 0xef1243fc in InterpProc ()
(gdb) 
#51 0xef0fe434 in Tcl_Eval ()
(gdb) 
#52 0xef0fe8b0 in Tcl_GlobalEval ()
(gdb) 
#53 0xef0186f8 in Tk_BindEvent ()
(gdb) 
#54 0xef01b5d0 in TkBindEventProc ()
(gdb) 
#55 0xef020d28 in Tk_HandleEvent ()
(gdb) 
#56 0xef021188 in WindowEventProc ()
(gdb) 
#57 0xef11fc14 in ServiceEvent ()
(gdb) 
#58 0xef11fecc in Tcl_DoOneEvent ()
(gdb) 
#59 0xef6f35a0 in scm_tcl_do_one_event (flags=-2) at guile-tcl.c:730
730       answer = (Tcl_DoOneEvent (SCM_INUM (flags)));
(gdb) 
#60 0xef4a13e0 in scm_ceval (x=10612, env=1035216) at eval.c:2340
2340            RETURN (SCM_SUBRF (proc) (scm_cons2 (t.arg1, arg2, scm_eval_args (x, env))));
(gdb) 
#61 0xef4a0654 in scm_ceval (x=1173776, env=1035216) at eval.c:2099
2099      t.arg1 = EVALCAR (x, env);
(gdb) 
#62 0xef49f7e4 in scm_ceval (x=1173736, env=1035216) at eval.c:1709
1709          if (SCM_NFALSEP (EVALCAR (x, env)))
(gdb) 
#63 0xef4a1fd4 in scm_apply (proc=1164384, arg1=1035304, args=1035288)
    at eval.c:2686
2686            arg1 = EVALCAR (proc, args);
(gdb) 
#64 0xef4a22fc in scm_for_each (proc=1035360, arg1=1168944, args=10612)
    at eval.c:2813
2813              scm_apply (proc, SCM_CAR (arg1), scm_listofnull);
(gdb) 
#65 0xef4a13a8 in scm_ceval (x=10612, env=1035368) at eval.c:2338
2338            RETURN (SCM_SUBRF (proc) (t.arg1, arg2, scm_eval_args (x, env)));
(gdb) 
#66 0xef49f144 in scm_ceval (x=1164312, env=1035368) at eval.c:1602
1602              SIDEVAL (SCM_CAR (x), env);
(gdb) 
#67 0xef49f144 in scm_ceval (x=1140512, env=1035384) at eval.c:1602
1602              SIDEVAL (SCM_CAR (x), env);
(gdb) 
#68 0xef4a0654 in scm_ceval (x=878800, env=934456) at eval.c:2099
2099      t.arg1 = EVALCAR (x, env);
(gdb) 
#69 0xef4a1fd4 in scm_apply (proc=731712, arg1=11124, args=934488)
    at eval.c:2686
2686            arg1 = EVALCAR (proc, args);
(gdb) 
#70 0xef49adc4 in scm_dynamic_wind (thunk1=934600, thunk2=934584, 
    thunk3=934568) at dynwind.c:78
78        ans = scm_apply (thunk2, SCM_EOL, SCM_EOL);
(gdb) 
#71 0xef4a13a8 in scm_ceval (x=731768, env=934608) at eval.c:2338
2338            RETURN (SCM_SUBRF (proc) (t.arg1, arg2, scm_eval_args (x, env)));
(gdb) 
#72 0xef4a1fd4 in scm_apply (proc=731776, arg1=10612, args=934608)
    at eval.c:2686
2686            arg1 = EVALCAR (proc, args);
(gdb) 
#73 0xef4e1934 in scm_body_thunk (body_data=0x1700b8, jmpbuf=8564)
    at throw.c:404
404         return scm_apply (c->body_proc, scm_cons (jmpbuf, SCM_EOL), SCM_EOL);
(gdb) 
#74 0xef4e1734 in scm_internal_lazy_catch (tag=9076, 
    body=0xef4e18e0 <scm_body_thunk>, body_data=0x1700b8, 
    handler=0xef4e193c <scm_handle_by_proc>, handler_data=0x17011c)
    at throw.c:330
330       answer = (*body) (body_data, SCM_BOOL_F);
(gdb) 
#75 0xef4e1c9c in scm_lazy_catch (tag=9076, thunk=934656, handler=729408)
    at throw.c:581
581       return scm_internal_lazy_catch (tag,
(gdb) 
#76 0xef4a13a8 in scm_ceval (x=731792, env=934664) at eval.c:2338
2338            RETURN (SCM_SUBRF (proc) (t.arg1, arg2, scm_eval_args (x, env)));
(gdb) 
#77 0xef4a1fd4 in scm_apply (proc=731800, arg1=10612, args=934664)
    at eval.c:2686
2686            arg1 = EVALCAR (proc, args);
(gdb) 
#78 0xef4e1934 in scm_body_thunk (body_data=0x170370, jmpbuf=934696)
    at throw.c:404
404         return scm_apply (c->body_proc, scm_cons (jmpbuf, SCM_EOL), SCM_EOL);
(gdb) 
#79 0xef4e147c in scm_internal_catch (tag=69759, 
    body=0xef4e18e0 <scm_body_thunk>, body_data=0x170370, 
    handler=0xef4e193c <scm_handle_by_proc>, handler_data=0x1703d4)
    at throw.c:235
235           answer = body (body_data, jmpbuf);
(gdb) 
#80 0xef4e1bfc in scm_catch (tag=9076, thunk=934728, handler=934712)
    at throw.c:553
553       return scm_internal_catch (tag,
(gdb) 
#81 0xef4a13a8 in scm_ceval (x=732872, env=934736) at eval.c:2338
2338            RETURN (SCM_SUBRF (proc) (t.arg1, arg2, scm_eval_args (x, env)));
(gdb) 
#82 0xef49fa98 in scm_ceval (x=887408, env=934736) at eval.c:1760
1760              env = EXTEND_ENV (t.arg1, EVALCAR (proc, env), env);
(gdb) 
#83 0xef4a1fd4 in scm_apply (proc=1140376, arg1=10612, args=941104)
    at eval.c:2686
2686            arg1 = EVALCAR (proc, args);
(gdb) 
#84 0xef4d4030 in cwdr_inner_body (data=0x1707f0, jmpbuf=941136) at root.c:215
215       return scm_apply (c->body_proc, c->a1, c->args);
(gdb) 
#85 0xef4e147c in scm_internal_catch (tag=69759, 
    body=0xef4d401c <cwdr_inner_body>, body_data=0x1707f0, 
    handler=0xef4e193c <scm_handle_by_proc>, handler_data=0x1707fc)
    at throw.c:235
235           answer = body (body_data, jmpbuf);
(gdb) 
#86 0xef4d407c in cwdr_outer_body (data=0x1707f0, jmpbuf=941160) at root.c:229
229       return scm_internal_catch (SCM_BOOL_T,
(gdb) 
#87 0xef4e147c in scm_internal_catch (tag=69759, 
    body=0xef4d4038 <cwdr_outer_body>, body_data=0x1707f0, 
    handler=0xef4e1b34 <scm_handle_by_message_noexit>, handler_data=0x0)
    at throw.c:235
235           answer = body (body_data, jmpbuf);
(gdb) 
#88 0xef4d42ac in cwdr (proc=950504, a1=10612, args=10612, handler=949328, 
    stack_start=0x74808) at root.c:288
288         answer = scm_internal_catch (SCM_BOOL_T,
(gdb) 
#89 0xef4d43a8 in scm_call_with_dynamic_root (thunk=950504, handler=949328)
    at root.c:313
313       return cwdr (thunk, SCM_EOL, SCM_EOL, handler, &stack_place);
(gdb) 
#90 0xef4f27f0 in launch_thread (p=0xe5c78) at coop-threads.c:220
220       scm_call_with_dynamic_root (SCM_CADR (args), SCM_CADDR (args));
(gdb) 
#91 0xef4f2394 in coop_only (pu=0xe5c78, pt=0x1609a0, 
    f=0xef4f27c4 <launch_thread>) at coop.c:412
412       (*(coop_userf_t *)f)(pu);
(gdb) 
Initial frame selected; you cannot go up.