Changed name of DI:DO-BLOCKS to DI:DO-DEBUG-FUNCTION-BLOCKS. Fixed package system, so "DI" no longer needs to USE-PACKAGE various big packages that export lots of stuff unused by "DI". Someone screwed this up before, so now it is as it was before. Fixed stack parsing to correct handle bogus-lra's from :function-end breakpoints. Wrote DI:FUNCTION-END-COOKIE-VALID-P which takes a frame and a function-end-cookie. It returns whether the cookie is still valid. A cookie becomes invalid when the frame that established the cookie has exited. Sometimes cookie holders are unaware of cookie invalidation because their :function-end breakpoint hooks didn't run due to THROW'ing. This takes a frame as an efficiency hack since the user probably has a frame object in hand when using this routine, and it saves repeated parsing of the stack and consing when asking whether a series of cookies is valid. Wrote DEBUG-FUNCTION-START-LOCATION which takes a debug-function, and it returns a code-location before the body of a function and after all the arguments are in place. If this cannot determine that location due to a lack of debug information, it returns nil.
Please register or sign in to comment