Source: https://cs.brown.edu/courses/cs176/resources/jdb.pdf