How would you approach debugging a complex codebase?

Situational