[racket] debugging core dump - comments appreciated
At Mon, 23 May 2011 21:10:27 -0400, Neil Van Dyke wrote:
> I have another question: At some point, the Scheme application code does
> an "eval" of a file, and that file has "require"s, which likely pull in
> that SRFI-14 module indirectly (just like the code that does the
> "eval"). Can you tell from the stack trace whether or not we are
> evaluating such an "eval"?
I don't think so.
Here's my complete reading of the stack (where each explanation applies
to the frames immediately above):
> #0 0x00000000005655b6 in GC_clear_stack_inner (arg=0x0,
> limit=0x7fff2dd5ce30 <Address 0x7fff2dd5ce30 out of bounds>) at ./misc.c:243
> #1 0x00000000005655cb in GC_clear_stack_inner (arg=0x0,
> limit=0x7fff2dd5ce30 <Address 0x7fff2dd5ce30 out of bounds>) at ./misc.c:245
> #2 0x00000000005655cb in GC_clear_stack_inner (arg=0x0,
> limit=0x7fff2dd5ce30 <Address 0x7fff2dd5ce30 out of bounds>) at ./misc.c:245
> [[...SAME...]]
> #7 0x00000000005655cb in GC_clear_stack_inner (arg=0x0,
> limit=0x7fff2dd5ce30 <Address 0x7fff2dd5ce30 out of bounds>) at ./misc.c:245
> #8 0x00000000005655cb in GC_clear_stack_inner (arg=0x0,
> limit=0x7fff2dd5ce30 <Address 0x7fff2dd5ce30 out of bounds>) at ./misc.c:245
> #9 0x00000000005655cb in GC_clear_stack_inner (arg=0x0,
> limit=0x7fff2dd5ce30 <Address 0x7fff2dd5ce30 out of bounds>) at ./misc.c:245
>
> #10 0x000000000056564b in GC_clear_stack (arg=0x0) at ./misc.c:291
> #11 0x000000000056db58 in GC_generic_malloc_many (lb=2, k=0,
> result=0x7e7780) at ./mallocx.c:421
In a GC triggered by...
> #12 0x000000000056e3f5 in GC_malloc_atomic (bytes=16) at
> ./thread_local_alloc.c:219
... an allocation request from ...
> #13 0x000000000055ee7a in scheme_make_char (ch=12985) at ./char.c:146
> #14 0x00000000005606a4 in integer_to_char (argc=1, argv=0x7fff2c5b7028)
> at ./char.c:248
`(integer->char 12895)', probably (assuming that gdb isn't lying),
which was called from deep in some expression ...
> #15 0x00000000004452b8 in scheme_do_eval (obj=0x909110, num_rands=1,
> rands=0x7fff2c5b7028, get_value=1) at ./eval.c:8825
> #16 0x0000000000444bac in scheme_do_eval (obj=0x908ea0, num_rands=<value
> optimized out>, rands=0x7fff2c5b7030, get_value=1) at ./eval.c:9416
> #17 0x00000000004449ac in scheme_do_eval (obj=0x7fff2c5a6ba0,
> num_rands=4, rands=0x7fff2c5b7010, get_value=1) at ./eval.c:9538
>
> #18 0x0000000000444af7 in scheme_do_eval (obj=0x900dd0, num_rands=<value
> optimized out>, rands=0x7fff2c5b7058, get_value=1) at ./eval.c:9509
> #19 0x0000000000444af7 in scheme_do_eval (obj=0x900dd0, num_rands=<value
> optimized out>, rands=0x7fff2c5b7098, get_value=1) at ./eval.c:9509
> #20 0x0000000000444af7 in scheme_do_eval (obj=0x900dd0, num_rands=<value
> optimized out>, rands=0x7fff2c5b70d8, get_value=1) at ./eval.c:9509
> [[...SAME...]]
> #173 0x0000000000444af7 in scheme_do_eval (obj=0x900dd0,
> num_rands=<value optimized out>, rands=0x7fff2c5b8dc8, get_value=1) at
> ./eval.c:9509
> #174 0x0000000000444af7 in scheme_do_eval (obj=0x900dd0,
> num_rands=<value optimized out>, rands=0x7fff2c5b8e00, get_value=1) at
> ./eval.c:9509
> #175 0x0000000000444af7 in scheme_do_eval (obj=0x900dd0,
> num_rands=<value optimized out>, rands=0x7fff2c5b8e40, get_value=-1) at
> ./eval.c:9509
> #176 0x000000000044218a in scheme_enlarge_runstack (size=<value
... (in fact, so deep that the Racket-value stack overflowed) ...
> optimized out>, k=0x4464d0 <do_eval_k>) at ./eval.c:660
> #177 0x000000000044546f in scheme_do_eval (obj=0x7fff2c52a7e0,
> num_rands=<value optimized out>, rands=0x7fff2f8985a0, get_value=1) at
> ./eval.c:8852
>
> #178 0x0000000000444af7 in scheme_do_eval (obj=0x900dd0,
> num_rands=<value optimized out>, rands=0x7fff3211b0b8, get_value=1) at
> ./eval.c:9509
> #179 0x0000000000444af7 in scheme_do_eval (obj=0x900dd0,
> num_rands=<value optimized out>, rands=0x7fff3211b0f8, get_value=1) at
> ./eval.c:9509
> #180 0x0000000000444af7 in scheme_do_eval (obj=0x900dd0,
> num_rands=<value optimized out>, rands=0x7fff3211b118, get_value=1) at
> ./eval.c:9509
> [[...SAME...]]
> #338 0x0000000000444af7 in scheme_do_eval (obj=0x900dd0,
> num_rands=<value optimized out>, rands=0x7fff3211ce20, get_value=1) at
> ./eval.c:9509
> #339 0x0000000000444af7 in scheme_do_eval (obj=0x900dd0,
> num_rands=<value optimized out>, rands=0x7fff3211ce58, get_value=1) at
> ./eval.c:9509
> #340 0x0000000000444af7 in scheme_do_eval (obj=0x900dd0,
> num_rands=<value optimized out>, rands=0x7fff3211ce98, get_value=1) at
> ./eval.c:9509
>
> #341 0x0000000000444bac in scheme_do_eval (obj=0x7fff2c5910a0,
> num_rands=<value optimized out>, rands=0x7fff3211ced8, get_value=1) at
> ./eval.c:9416
> #342 0x0000000000444782 in scheme_do_eval (obj=0x7fff2c5a49c0,
> num_rands=-1, rands=0x0, get_value=1) at ./eval.c:9724
> #343 0x0000000000444aac in scheme_do_eval (obj=0x7fff2c593820,
> num_rands=<value optimized out>, rands=0x7fff3211cf00, get_value=1) at
> ./eval.c:9484
> #344 0x0000000000444bac in scheme_do_eval (obj=0x7fff2c58a990,
> num_rands=<value optimized out>, rands=0x7fff3211cf10, get_value=-1) at
> ./eval.c:9416
> #345 0x00000000005436b3 in define_execute_with_dynamic_state
> (vec=0x7fff2f827560, delta=1, defmacro=0, rp=0x0, dm_env=0x0,
> dyn_state=0x0) at ./syntax.c:710
.... on the right-hand side of `define' ...
> #346 0x0000000000444d3d in scheme_do_eval (obj=0x7fff2f827300,
> num_rands=-1, rands=0x0, get_value=-1) at ./eval.c:9236
> #347 0x00000000004452cd in scheme_do_eval (obj=0x7fff2c5a5fc0,
> num_rands=0, rands=0x0, get_value=-1) at ./eval.c:9171
> #348 0x000000000045e4c7 in scheme_finish_apply_for_prompt (prompt=<value
> optimized out>, _prompt_tag=<value optimized out>, proc=0x7fff2c5a5fc0,
> argc=0, argv=0x0) at ./fun.c:6039
> #349 0x000000000045e5a1 in scheme_apply_for_prompt
> (prompt=0x7fff2dd5ca20, prompt_tag=0x0, proc=0x6a8, argc=768989080,
> argv=0x0) at ./fun.c:6119
> #350 0x0000000000467a10 in call_with_prompt (in_argc=<value optimized
> out>, in_argv=<value optimized out>) at ./fun.c:6444
> #351 0x00000000004452b8 in scheme_do_eval (obj=0x900350, num_rands=3,
> rands=0x7fff2dd6fef0, get_value=-1) at ./eval.c:8825
> #352 0x0000000000464f09 in do_call_with_prompt (f=<value optimized out>,
> data=<value optimized out>, multi=1, top_level=0) at ./fun.c:6631
... where the `define' was wrapped in a prompt ...
> #353 0x00000000004af298 in scheme_module_run_finish
> (menv=0x7fff2f756b40, env=0x7fff3210bb40) at ./module.c:4576
> #354 0x000000000047ac45 in scheme_module_run_start (menv=0x7fff2dd5ca20,
> env=0x0, name=0x7fff2c58ba80) at ./jit.c:12868
> #355 0x00000000004b361f in start_module (m=0x7fff2f7b7880,
> env=0x7fff3210bb40, restart=0, syntax_idx=0x7fff2fc3e780, eval_exp=-1,
> eval_run=1, base_phase=0, cycle_list=0x7fff2c572a40)
> at ./module.c:4381
... because it's at the top level of a module that ...
> #356 0x00000000004b55a6 in scheme_module_start_finish (a=<value
> optimized out>) at ./module.c:3968
> #357 0x000000000047abe5 in scheme_module_start_start (a=0x7fff2dd5ca20,
> name=0x7fff2c572a60) at ./jit.c:12886
> #358 0x00000000004b33ea in start_module (m=0x7fff2fc3b770,
> env=0x7fff3210bb40, restart=0, syntax_idx=0x7fff30066960, eval_exp=-1,
> eval_run=1, base_phase=<value optimized out>,
> cycle_list=0x7fff2c572f00) at ./module.c:4069
... was `required' by a module that ...
> #359 0x00000000004b55a6 in scheme_module_start_finish (a=<value
> optimized out>) at ./module.c:3968
> #360 0x000000000047abe5 in scheme_module_start_start (a=0x7fff2dd5ca20,
> name=0x7fff2c572f20) at ./jit.c:12886
> #361 0x00000000004b33ea in start_module (m=0x7fff3060dee0,
> env=0x7fff3210bb40, restart=0, syntax_idx=0x7fff2f73bba0, eval_exp=-1,
> eval_run=1, base_phase=<value optimized out>,
> cycle_list=0x7fff2c556f40) at ./module.c:4069
... was `required' by a module that ...
> #362 0x00000000004b55a6 in scheme_module_start_finish (a=<value
> optimized out>) at ./module.c:3968
> #363 0x000000000047abe5 in scheme_module_start_start (a=0x7fff2dd5ca20,
> name=0x7fff2c556f60) at ./jit.c:12886
> #364 0x00000000004b33ea in start_module (m=0x7fff309fabb0,
> env=0x7fff3210bb40, restart=0, syntax_idx=0x7fff2fca0e40, eval_exp=-1,
> eval_run=1, base_phase=<value optimized out>,
> cycle_list=0x7fff2c556fc0) at ./module.c:4069
... was `required' by a module that ...
> #365 0x00000000004b55a6 in scheme_module_start_finish (a=<value
> optimized out>) at ./module.c:3968
> #366 0x000000000047abe5 in scheme_module_start_start (a=0x7fff2dd5ca20,
> name=0x7fff2c556fe0) at ./jit.c:12886
> #367 0x00000000004b33ea in start_module (m=0x7fff2fb0b110,
> env=0x7fff3210bb40, restart=0, syntax_idx=0x7fff2fb1bb70, eval_exp=-1,
> eval_run=1, base_phase=<value optimized out>,
> cycle_list=0x7fff2c54ae80) at ./module.c:4069
... was `required' by a module that ...
> #368 0x00000000004b55a6 in scheme_module_start_finish (a=<value
> optimized out>) at ./module.c:3968
> #369 0x000000000047abe5 in scheme_module_start_start (a=0x7fff2dd5ca20,
> name=0x7fff2c54aea0) at ./jit.c:12886
> #370 0x00000000004b33ea in start_module (m=0x7fff2ffcd330,
> env=0x7fff3210bb40, restart=0, syntax_idx=0x7fff2c5316f0, eval_exp=-1,
> eval_run=1, base_phase=<value optimized out>, cycle_list=0x7e7ad8)
> at ./module.c:4069
>
> #371 0x00000000004b3a4e in parse_requires (form=0x7fff3017a380,
> base_modidx=0x7e79f0, main_env=0x7fff3210bb40, for_m=<value optimized
> out>, rn_set=0x7fff2c531720, post_ex_rn_set=0x7fff2c531720,
> ck=0x4b0f90 <check_dup_require>, data=0x0, redef_modname=0x0,
> unpack_kern=1, copy_vars=0, can_save_marshal=0, eval_exp=0, eval_run=0,
> all_simple=0x0) at ./module.c:9526
> #372 0x00000000004b4e1e in do_require_execute (env=0x7fff3210bb40,
> form=0x7fff3017a380) at ./module.c:9668
> #373 0x00000000004c00f9 in top_level_require_execute (data=<value
> optimized out>) at ./module.c:9684
... was started by a `require' ...
> #374 0x0000000000444d3d in scheme_do_eval (obj=0x7fff2c548480,
> num_rands=-1, rands=0x0, get_value=-1) at ./eval.c:9236
> #375 0x0000000000445ec9 in eval_k () at ./eval.c:9942
> #376 0x00000000004452cd in scheme_do_eval (obj=0x7fff2c5317b0,
> num_rands=0, rands=0x0, get_value=-1) at ./eval.c:9171
> #377 0x000000000045e4c7 in scheme_finish_apply_for_prompt (prompt=<value
> optimized out>, _prompt_tag=<value optimized out>, proc=0x7fff2c5317b0,
> argc=0, argv=0x0) at ./fun.c:6039
> #378 0x000000000045e5a1 in scheme_apply_for_prompt
> (prompt=0x7fff2dd5ca20, prompt_tag=0x0, proc=0x6a8, argc=768989080,
> argv=0x0) at ./fun.c:6119
> #379 0x0000000000467a10 in call_with_prompt (in_argc=<value optimized
> out>, in_argv=<value optimized out>) at ./fun.c:6444
> #380 0x00000000004452b8 in scheme_do_eval (obj=0x900350, num_rands=3,
> rands=0x7fff2dd70d50, get_value=-1) at ./eval.c:8825
> #381 0x0000000000464f09 in do_call_with_prompt (f=<value optimized out>,
> data=<value optimized out>, multi=1, top_level=0) at ./fun.c:6631
> #382 0x000000000044c646 in compile_k () at ./eval.c:9999
> #383 0x00000000004621a4 in scheme_top_level_do_worker (k=0x44c1b0
> <compile_k>, eb=0, new_thread=0, dyn_state=0x0) at ./fun.c:2222
> #384 0x0000000000446094 in scheme_default_eval_handler (argc=<value
> optimized out>, argv=0x7fff30042be0) at ./eval.c:10286
> #385 0x00000000004452b8 in scheme_do_eval (obj=0x90e9d0, num_rands=1,
> rands=0x7fff30042be0, get_value=-1) at ./eval.c:8825
> #386 0x00000000004452cd in scheme_do_eval (obj=0x7fff2ffd6c00,
> num_rands=0, rands=0x0, get_value=-1) at ./eval.c:9171
... that was `eval'ed ...
> #387 0x000000000045e4c7 in scheme_finish_apply_for_prompt (prompt=<value
> optimized out>, _prompt_tag=<value optimized out>, proc=0x7fff2ffd6c00,
> argc=0, argv=0x0) at ./fun.c:6039
> #388 0x000000000045e5a1 in scheme_apply_for_prompt
> (prompt=0x7fff2dd5ca20, prompt_tag=0x0, proc=0x6a8, argc=768989080,
> argv=0x0) at ./fun.c:6119
> #389 0x0000000000467a10 in call_with_prompt (in_argc=<value optimized
> out>, in_argv=<value optimized out>) at ./fun.c:6444
> #390 0x00000000004452b8 in scheme_do_eval (obj=0x900350, num_rands=3,
> rands=0x7fff2dd71430, get_value=-1) at ./eval.c:8825
> #391 0x0000000000464f09 in do_call_with_prompt (f=<value optimized out>,
> data=<value optimized out>, multi=1, top_level=0) at ./fun.c:6631
... inside a prompt ...
> #392 0x00000000004e5df7 in do_load_handler (data=<value optimized out>)
> at ./portfun.c:4156
> #393 0x000000000045c9f1 in scheme_dynamic_wind (pre=0, act=0x4e5cc0
> <do_load_handler>, post=0x4e5b70 <post_load_handler>, jmp_handler=0,
> data=0x7fff2ffd6d20) at ./fun.c:7937
> #394 0x00000000004e5a96 in default_load (argc=<value optimized out>,
> argv=0x7fff2dd717a0) at ./portfun.c:4271
... by the default load handler ....
> #395 0x00000000004452b8 in scheme_do_eval (obj=0x90eb40, num_rands=2,
> rands=0x7fff2dd717a0, get_value=-1) at ./eval.c:8825
> #396 0x00000000004e2a42 in scheme_load_with_clrd (argc=<value optimized
> out>, argv=<value optimized out>, who=<value optimized out>,
> handler_param=10) at ./portfun.c:4311
> #397 0x00000000004452b8 in scheme_do_eval (obj=0x7fff2ffcb030,
> num_rands=1, rands=0x7fff2dd71b00, get_value=-1) at ./eval.c:8825
> #398 0x00000000004621a4 in scheme_top_level_do_worker (k=0x45a4d0
> <apply_k>, eb=1, new_thread=0, dyn_state=0x0) at ./fun.c:2222
> #399 0x00000000004e274f in scheme_load (file=<value optimized out>) at
> ./portfun.c:4424
... via `load' ...
> #400 0x00000000004284cc in finish_cmd_line_run (fa=0x7fff320d6810,
> repl=0x428a30 <do_scheme_rep>) at ./cmdline.inc:201
... from the command line ...
> #401 0x0000000000427625 in main_after_stack (data=<value optimized out>)
> at ./cmdline.inc:1137
> #402 0x000000000050d69e in scheme_main_stack_setup
> (no_auto_statics=<value optimized out>, _main=0x427010
> <main_after_stack>, data=0x7fff2dd71dc0) at ./salloc.c:195
> #403 0x0000000000426e3e in main (argc=<value optimized out>, argv=<value
> optimized out>) at ./main.c:268
... at the start of the program.