@ekaitz_zarraga gdb is great. I think debugger is a bit like repls and help to understand what's going on in the code, how compiler understands stuff. Tooling of C is quite hard too, maybe even harder than C itself.
There is a language that as minimal as C, but with a lot of fixed issues of c. The name of that language is Oberon and it was developed by Wirth. Sadly it is not popular at all in unix-like systems, compilers are not even packaged anywhere.