On Thu, Sep 28, 2017 at 04:49:10PM +1000, David Ireland wrote: > Hi there, > > I am sporadically getting segmentation violations (about 1 out of 3 program > executions fail) while processing these files. It is not dependent on the > particular XML file but always occurs when about 50 have been processed > already. Here is the error: > > *Error: segmentation violation Call history: ,,, > crow.scm:524: unpack-aiml crow.scm:468: read-all * > *crow.scm:468: buffer-ports#open-input-buffer crow.scm:469: > ssax#ssax:xml->sxml *
Hi David, That kind of bug can be very nasty, sorry about that! > And an except from the code: > > (define (unpack-aiml file) > (let* ((result '()) > (contents (open-input-buffer (read-all file))) > (xml (car (get-tag (*ssax:xml->sxml contents* '()) 'aiml))) > > Would anyone have any suggestions how I could further debug? The most important thing is that you're running the latest release. Next, I'd try building a new CHICKEN with DEBUGBUILD=1 on the "make" command line. This will insert many extra sanity checks (at the cost of a factor 2 to 4 slowdown), and build with debugging symbols. Remember to keep the generated C sources around, too. Also rebuild ssax and all its dependencies with this CHICKEN, so that it also contains the debugging stuff (ideally with CSC_OPTIONS=-k to ensure you keep the generated sources too) Then, you can use gdb and run the program as usual. Pinpointing the place of the crash in C should be straightforward. Mapping it back to Scheme might be harder (there are comments in the sources that indicate where a generated C function is coming from). Alternatively, if you'd like some help, post a complete program with sample XML that triggers the crash (somewhat) reliably, and others can help you figure it out. Cheers, Peter
signature.asc
Description: PGP signature
_______________________________________________ Chicken-users mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/chicken-users
