From: Bruno H. <br...@cl...> - 2005-04-01 19:16:59
|
Sam wrote: > [1]> sys::abazonk > > :MEANINGFULP T)) > > compiled tagbody frame for #(NIL) > - 214 > - > #(#(NIL "Ignore the lock and proceed" (INTERN "NGFULPT" #<PACKAGE SYSTEM>)) > ^^^^^^^^^ > > HUH?!!!!! Evidently you need to proofread the check_pack_lock / cerror_package_locked area of package.d. But here's a hint: The string that is passed to intern() is actually a displaced array, pointing into a buffer that io.d constantly reuses. So the "ABAZONK" string is actually the substring from 5 to 12 of this buffer, containing "SYS::ABAZONK..." The "NGFULPT" reveals the contents of this buffer after it has been filled with the string "MEANINGFULP..." As you can see, it's the mere fact of printing the backtrace that has changed the contents of the buffer. Try adding a coerce_ss() call at the appropriate place (i.e. not in the fast path, but rather at a point where it's likely that a break loop will be entered). Bruno |