Which reminded me of one thing: C is a terrible language, but because it’s terrible, it has led to the development of amazing tools to work around its weaknesses.
I’m saying this because I debugged the damn thing with Valgrind + GDB (Valgrind implements the “remote” protocol of GDB so you can GDB into a process running under Valgrind), an impressive combo.