# Debugging & Troubleshooting

> Reading the error, finding the real cause, and fixing it calmly instead of guessing.

8 guides.

- [What an Error Message Is Actually Telling You](https://themissingmanual.dev/guides/what-an-error-message-tells-you) _(beginner)_ - An error message is not the computer scolding you - it's a precise report of what went wrong and where. This guide teaches you to read its anatomy, recognize the common families, and work through one calmly.
- [Reading a Stack Trace at 2am](https://themissingmanual.dev/guides/reading-a-stack-trace) _(beginner)_ - A stack trace is the call stack frozen at the instant of failure - this guide teaches you to read one calmly: what it actually is, how to find your code in the noise, and how to go from trace to fix.
- [Reading Logs Without Drowning](https://themissingmanual.dev/guides/reading-logs-without-drowning) _(beginner)_ - What logs actually are, how to find the one line that matters in a flood of them, and how to write logs that help future-you instead of burying them.
- [How to Reproduce a Bug](https://themissingmanual.dev/guides/how-to-reproduce-a-bug) _(intermediate)_ - Reproduction is the skill that makes every fix possible: turn a vague report into a bug you can trigger on demand, shrink it to its essence, and tame the intermittent ones that won't show up when you're watching.
- [Using a Debugger (Breakpoints, Stepping & Watch)](https://themissingmanual.dev/guides/using-a-debugger) _(intermediate)_ - What a debugger actually is - a way to pause your program mid-run and inspect everything that's true at that instant - and how breakpoints, stepping, and watch expressions transfer across every IDE, language, and browser devtools.
- [Bisecting a Bug (git bisect & Binary-Search Thinking)](https://themissingmanual.dev/guides/bisecting-a-bug) _(intermediate)_ - When something worked before and is broken now, you don't search commit by commit - you halve the suspect range each test, so 1000 commits take about 10 checks; git bisect automates the hunt, and the same halving idea finds the bad config line, input row, or dependency.
- [When Prod Is Down: Staying Calm](https://themissingmanual.dev/guides/when-prod-is-down) _(advanced)_ - How to handle a production outage without panicking: assess the blast radius, stop the bleeding before you diagnose, run the incident with clear comms, and turn the wreckage into a blameless postmortem that prevents the next one.
- [Debugging in the Browser](https://themissingmanual.dev/guides/debugging-in-the-browser) _(intermediate)_ - Browser DevTools without the overwhelm: the Console, breakpoints in the Sources panel, and the Network tab solve most frontend mysteries.
