![Writing Debug and Trace Messages](icons/Debugging.png) | Writing Debug and Trace Messages Complex software can be made easier to debug and monitor with the use of logging code. Such code outputs information about an application to the screen or to a location that can be examined during debugging or when the software is in a live environment. |
![Debugging with Attach to Process](icons/Debugging.png) | Debugging with Attach to Process Visual Studio allows you to execute a program in debug mode and use various debugging tools to monitor its activity. When you are running a program outside of Visual Studio, it can still be possible to attach to that software to investigate its behaviour. |
![Using the DebuggerDisplay Attribute](icons/Debugging.png) | Using the DebuggerDisplay Attribute When debugging, the contents of strings and numeric types can be viewed in the locals and watches windows. When a custom object is displayed, the name of the class or the result of ToString() is shown. This can be changed with a DebuggerDisplay attribute. |
![Visual Studio Debug Mode](icons/Debugging.png) | Visual Studio Debug Mode In addition to being a complex code editing tool, Visual Studio includes a debugger. This tool allows a program to be paused, then stepped through line-by-line whilst allowing you to monitor the values of variables, helping to identify bugs. |
![C# Conditional Methods](icons/Debugging.png) | C# Conditional Methods Applications developed using C# and the .NET framework can include conditional methods. These methods are called only when specified compiler symbols have been defined. This makes them ideal for code used for tracing and debugging purposes. |
![Debugging Using Assertions](icons/Debugging.png) | Debugging Using Assertions Often, when debugging software, a problem manifested at one location in the code is caused much earlier, potentially making it difficult to isolate. By adding assertions to the code, assumptions can be checked and warnings issues when they are incorrect. |
![Breakpoints and Tracepoints in Visual Studio](icons/Debugging.png) | Breakpoints and Tracepoints in Visual Studio When debugging program code it is important to be able to pause the code at a specific location. Using Visual Studio breakpoints and tracepoints, the code can be halted at a desired line or can output trace information when conditions are met. |
![Visual Studio Debug and Release Modes](icons/Debugging.png) | Visual Studio Debug and Release Modes Software developed using the .NET framework can be compiled into assemblies in either debug or release mode. These two modes create executables and libraries that have important differences. This article describes the use and setting of these modes. |