Object-oriented programs, when executed, produce a complex webs of objects and references between them, generally referred to as object graphs. These object graphs are difficult to design correctly and even more difficult to debug if incorrect. Unfortunately, very subtle bugs in objectoriented programs are directly caused by object graph topologies. Snapshot query-based debuggers let programmers examine object graph snapshots of programs in detail using a specially designed query language. This provides users with an ability to debug and examine their programs in great detail at the time when the memory snapshot is taken.