Not 5 levels, but I once wrote debug visualizers for a compiler using funceval (the visualizer uses the debugger to run code in the target process).
I think I once had to debug the debugger debugging the compiler compiling itself which felt like another really weird kind of recursion.