What techniques do modern garbage collectors (as in CLR, JVM) use to tell which heap objects are referenced from the stack?
Specificall
Interesting documentation on this topic posted up by the .Net team shortly after the they made CoreCLR open source: Stack Walking