Production is very, very rarely debugged in a debugger.
This warrants some explanation. Let me elaborate. When debugging something, you generally use a few approaches:
- Attach a debugger
- Artifacts from an event (e.g. an error log)
- A quick high-level debug dump of a running process (e.g. stack trace)
- Full memory dump
When you attach a debugger, you have to:
- Have said debugger installed
- Setup production around a debugger to some extent, e.g. GUI on the running machine
- Be willing to stall the process (e.g. timing out requests)
While 1 and 2 may be doable, number 3 is a hard no at scale.