Debugger choice depends on complexity and particular context, basically OllyDbg2 cover a wide range of situations.
But for complex environment debugging WinDbg + scripting is "the best", both on ring3 and ring0 situations.
It's a bit unfriendly for a beginner, but I strongly suggest to learn also this debugger
Easy drivers, can be debugged with Syser.