Stack Trace
beginnerDefinition
A list of function calls the program was in the middle of when an error occurred, shown from the most recent call back to the starting point. It's like a trail of breadcrumbs showing exactly how the code arrived at the crash.
In the wild
TypeError: Cannot read property 'name' of undefined at getUser (users.js:12) at handleRequest (server.js:45) at main (index.js:3) This tells you the error is in getUser at line 12 of users.js, called from handleRequest, called from main.
More from Debugging & Error Handling
Edge Case
An unusual or extreme input that the code might not handle correctly. Edge cases live at the boundaries: empty strings, zero, negative numbers, very large inputs, or special characters. Many bugs hide in edge cases because developers test the 'happy path' first.
Error Message
The text a program outputs when something goes wrong. Error messages usually include what failed, where it failed, and sometimes why. Sharing the exact error message, not a summary of it, is the fastest way to get useful help.
Expected vs. Actual
A simple framework for describing bugs: what should happen (expected) versus what does happen (actual). Stating both makes the problem unambiguous. Without the expected behavior, it's not always clear that something is wrong.
Logging
Recording what a program does as it runs: which functions were called, what data was received, what decisions were made. Logs are like a flight recorder: when something goes wrong, you read the logs to see what happened leading up to the crash.
Minimal Reproduction
The smallest possible example that still triggers the bug. Stripping away unrelated code makes the problem easier to spot and faster to fix. If a bug only shows up in a 10,000-line app, creating a 20-line version that reproduces it is incredibly valuable.
Regression
A bug that appears in something that used to work. It typically happens when a code change accidentally breaks an unrelated feature. Regressions are sneaky because nobody is looking for problems in parts of the app that were already working.