Visual Studio includes a powerful and flexible debugger. You can use it as an alternative to tracing to discover the root cause for all kinds of errors and bugs. The advantage of using the debugger is that you can follow the execution of the code as it happens, rather than relying on a trace summary that is available after the request has been processed.
Debugging an ASP.NET page request is just like debugging a regular C# program. You set breakpoints, run the program, and wait for the debugger to break. Once this happens, you can step through the code to follow its execution. In this section, I'll show you how to selectively break the debugger to get fine-grained control over the debug process.