The source content for blog.juliobiason.me
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

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


  1. 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.