This session will describe useful debug techniques for debugging a UVM testbench with 8 to 10 agents, and many stimulus generators, checkers and exception handlers running in parallel. We’ll use 'design-wide' lexical search and break-on-change to find places where variables are getting set to wrong values or in wrong orders. We’ll use watch windows to keep track of our instance data. We’ll explore the complex testbench data structures in-place using 'browse this' (queues, object handles, associative arrays can all be explored). Checkpoint and Restore will be used to avoid running through reset phases to find bugs.