From: SourceForge.net <no...@so...> - 2010-09-21 13:08:43
|
Bugs item #3072640, was opened at 2010-09-21 15:08 Message generated for change (Settings changed) made by twylite You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=110894&aid=3072640&group_id=10894 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: 60. NRE and coroutines Group: development: 8.6b1.1 Status: Open Resolution: None >Priority: 7 Private: No Submitted By: Twylite (twylite) Assigned to: miguel sofer (msofer) Summary: trace execution + yield fails ASSERT Initial Comment: Adding an execution (enterstep) trace to a proc that yields causes an ASSERT to fail, crashing the interp. Environment: - x86 32 bit - Windows XP SP3 with latest patches - Tcl 8.6b1.2 (from CVS 2010/08/30), also appears in Tcl 8.6b1.1) Symptom: - Assertion failed (MS Visual C++ Runtime Library error popup) - Source of failure: tclExecute.c:2882 NRE_ASSERT(BP == corPtr->eePtr->bottomPtr); Code to reproduce: -- proc generate {n} { for {set i 0} {$i < $n} {incr i} { yield $i } } proc t {args} { puts "Trace: $args" } trace add execution ::generate enterstep ::t coroutine coro generate 5 -- Further information: - Putting the [yield] into the trace handler ::t rather than the proc being traced results in the error "cannot yield: C stack busy", but doesn't lead to a crash. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=110894&aid=3072640&group_id=10894 |