Debugger/stepper in Rust

I'm not asking about debuggers for Rust.

I'm asking about writing a small debugger in Rust. Something like a mini gdb, that only supports "next" and "step into" and "inspect var."

Is there a good tutorial / recommended reading for this?

In particular, if we consider the language Lisp, it's famous for it's "half page, 7 function" evaluators. However, once I start thinking about stepping / next / environments / tail recursion, it's no longer clear to see what the right "primitives" for a debugger are.