so the only CMake debugger that works at this point is anything that supports the debugger adapter protocol (which was added just before the new year). I don't know of anyone who has integrated this beyond Jetbrains or VSCode. To date, I don't think there's even a neovim plugin (though, to be frank... I'm tempted to write one >_>)
In terms of builtin breakpoints, there is sadly none. The best you can do is use variable_watch in conjunction with maybe calling cmake_print_variables which is specified under CMakePrintHelpers, though it has an issue of "what if the variable is not defined?" I had fixed this in my :still in development for the 6 years" CMake library IXM, however CMake has been slowly adding features that made my blog post Everything You Never Wanted To Know About CMake less relevant with each release (thank god, honestly), so the stuff that's in a as-yet-to-be-released version is very slimmed down at this point.
That said, my heart goes out to anyone who works on the LLVM CMake stuff because it's a hot mess and I honestly don't know how I could convince them to let me rewrite most of it to be simpler and easier to understand (and not break shit on windows, which it does. all. the. fucking. time. π)
Anyhow to sum up, your best bet is to maybe call cmake_print_variables with some system("pause") equivalent via execute_process where you've turned the shell on.
(Someone had at one point written a script that would execute bash or python and set every CMake variable to the equivalent in python/bash, but it is SO SLOW in large programs π)