guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: No way out.


From: Neil Jerram
Subject: Re: No way out.
Date: Mon, 02 Jan 2006 15:42:51 +0000
User-agent: Gnus/5.1007 (Gnus v5.10.7) Emacs/21.4 (gnu/linux)

address@hidden (Han-Wen Nienhuys) writes:

> For starters, we could figure out why --debug doesn't work.

Progress so far...

In 1.6.x, the backtrace and full error information is generated by
this code towards the end of scm_ithrow() for the case where there
isn't a matching catch:

  if (scm_is_null (winds))
    {
      scm_handle_by_message (NULL, key, args);
      abort ();
    }

The backtrace code is inside scm_handle_by_message.

In 1.7.x, we don't call scm_handle_by_message, because there is a
matching catch which was set up as part of scm_with_guile.  The C
backtrace after jumping back out to this catch is:

#0  scm_internal_catch (tag=0x1, body=0x40044850 <c_body>, 
    body_data=0xbffffbe0, handler=0x40044880 <c_handler>, 
    handler_data=0xbffffbe0) at throw.c:158
#1  0x4004482c in scm_i_with_continuation_barrier (body=0x1, body_data=0x1, 
    handler=0x1, handler_data=0x1) at continuations.c:336
#2  0x40044913 in scm_c_with_continuation_barrier (func=0x1, data=0x1)
    at continuations.c:378
#3  0x400b53a0 in scm_i_with_guile_and_parent (func=0x1, data=0x1, parent=0x1)
    at threads.c:645
#4  0x400b5350 in scm_with_guile (func=0x1, data=0x1) at threads.c:633
#5  0x400732a1 in scm_boot_guile (argc=1, argv=0x1, main_func=0x1, closure=0x1)
    at init.c:350
#6  0x080489c6 in main (argc=1, argv=0x1) at guile.c:74

So it looks like there needs to be some scm_handle_by_message-like
code somewhere in this call stack.  Investigation continuing...

     Neil





reply via email to

[Prev in Thread] Current Thread [Next in Thread]