Did you know when you take a class in automobile repair that some of the stuff they start you off with is physics and chemistry? That's because they are the most basic things you need to understand to realize how a car actually operates. A car is the sum of all of its parts, so learning how those parts work by themselves is necessary to understand how it all comes together, and usually it comes down to the fundamentals, like physics and chemistry, and yes, even electronics.
An operating system is very much the same. The point is to get you - the user - to tell the hardware - the PC - to do something through software and have it do the job and get back with you on the results. There are many parts that work in tandem to make this happen, as each part of the OS works with different parts of hardware and software to make sure they all work decently and in order. Knowing how each part works and how they work together is crucial to deep troubleshooting like debugging, but it's also important to know the fundamentals under them, namely the programming languages (in Windows that's usually C/C++ and Assembly) and the hardware infrastructure the OS is working to keep under wraps.
So debugging and forensic troubleshooting are really a bunch of disciplines all wrapped up in a big package. You do not so much study and train to do debugging but rather train to learn each of these individual parts and how they work, and then you can apply that knowledge to troubleshooting when it doesn't work. It's like those who study forensics to find counterfeit money: they study every little detail of the real money so they can find what exactly is wrong with the fake ones. That's because there's many wrong ways to make counterfeit money, but there's only one way to make the real stuff, just like there's one way a computer should've done something but there's many ways it could mess up. You learn how cars run before you can learn how to repair them.
So the best way to get started in learning how to do debugging and crashdump analysis and all that good stuff is to get back to the basics. Learn the different programming languages (Assembly especially, since they all boil down to it in the end anyways), learn how the hardware works, and learn how the OS puts it all together. Occasionally take a break from learning them and see if what you learned can be applied to debugging and troubleshooting a problem.