Object Diagrams use UML and visualize the state of an executing program.

Note that the program counter is just the current line of code where you’re currently situated execution-wise.

In recursion, each recursive “iteration” has its own stack frame lead by the recursive function call, passing along the recursive variables which point to places in memory.