1.3 KiB
+++ title = "Understanding Stacktraces" date = 2021-11-29 draft = true
[taxonomies] tags = ["programming", "stack traces"] +++
I've seen some people confused when their application crashes, spewing a bunch of lines and they can't figure out what went wrong.
But let's start with something easier: What are stacktraces?
The Turing Machine
To get what stacktraces are, let's start with the very beginning and talk about Turing Machines.
Alan Turing, father of the computing, thought about having a long tape with commands1 and a pointer that would move forwards or backwards according to the command.
For example, imagine that you have the following sequence of commands:
- Take a piece of paper
- Fold it in half
- Unfold
- Move the bottom right corner so it touches the fold mark
... and so on (no, I'm not describing the whole process of making a paper plane). Even if the actions are pretty simple, you can use something to point which action you're taking so you know which one is the next one. Something like:
- Take a piece of paper
- Fold it in half
- Unfold <= I'm Here
- Move the bottom right corner so it touches the fold mark
-
Actually, the Turing Machine would compose a group of 0s and 1s to figure out a command, but let me simplify things a little bit. ↩︎