I understand using bookmarks to remember a single point in your code. However, how does one keep track of the flow of the code they are investigating? Eg: multiple bookmarks and the order in which they were made.
Example:
Bug report: "Collisions aren't working on the corners of walls"
- Reproduction of the bug puts it down to certain polygons not colliding.
- The collision code was written by an unavailable dev. So investigation goes something like:
During the investigation, especially when reviewing non-code items such as Google, one may reasonably be expected to loose their place in the code (Have I already looked at this code path? or Which code path was I investigating? There are multiple that lead to this function, etc). The same goes for unavoidable interruptions (Boss: I need [Lengthy Pointless Report] NOW, etc)
It would be useful to have a resource of techniques or tools for providing a way to keep track of one's place in the code.
Edit: The above example is meant as a potential illustration, not as an actual problem that needs answering.
Another way to phrase this question is:
When learning a new system, how do you keep track of where you are up to in learning the code? It's not about understanding why the code does what it does (which is what comments should be for), but how it does it (which is only learned through reading the code, not comments).