Hi Christoph,Someone who knows more will be able to get a better answer, but I don't think there is much of an issue here:when using the C API to register local roots (CAMLparam, CAMLlocal, etc), these roots are in effectstored in the C stack. When raising an exception the stack is _cut down_ and all those rootsare promptly forgotten (as they should be).Cheers,NicolasOn Sat, Feb 11, 2017 at 3:02 PM, Christoph Höger <christoph.hoeger@celeraone.com > wrote:Christophthanks,I would be glad, if someone could answer this or point me to the relevant documentation (if any exists).When control just returns from a stack frame, how are the entries removed from the frametable?Dear all,while studying camls native code generation and garbage collection strategy, I came upon Connor Benner's bachelor thesis from 2012, where he implemented a llvm backend for ocamlopt. One intriguing remark mentioned OCamls exception mechanism as basically consisting a pointer to the stack frame of the last exception handler in a special register (r14, when I recall correctly). Throwing an exception that becomes a mov/pop/ret operation. This however, seems to interfere with garbage collection: From the C-API, it seems that all local roots are stored in the frametable via some special macros (e.g. CAMLParam, CAMLlocal).