This article provides a roadmap to learn and to master how
to debug applications that use the .NET Framework. To help you learn about a
Microsoft product or technology, roadmap articles provide links to useful
information, including online documentation, Microsoft Knowledge Base articles,
and white papers.
This article contains the following sections:
Overview
To debug an application efficiently, it is very important that
you have a basic understanding of the .NET technology. This article assumes
that you are familiar with the following .NET Framework concepts:
- Managed code
- Garbage collection
- Assemblies
- Security
For more information, refer to the following topics in the
Visual Studio .NET Help documentation:
Architecture
The links that follow provide architectural information about the
debugger tools and about other troubleshooting tools.
You can debug a
Microsoft .NET Framework application by using one of the three debuggers:
- The Microsoft Visual Studio .NET debugger, which is
integrated with the Visual Studio .NET integrated development environment
(IDE), is the most sophisticated debugger that you can use. The Visual Studio
.NET debugger incorporates most of the features from the debuggers that are
included with Microsoft Visual Basic 6.0 and Microsoft Visual C++ 6.0.
In addition, the Visual Studio .NET debugger adds some very important
features, such as better facilities for remote debugging, cross-language
debugging, remote attach, detaching without killing the application, and so on.
When you use this debugger, you can debug both managed code and unmanaged code,
even when the code is mixed. For more information about the Visual Studio .NET
debugger, click the following link: - The CorDbg.exe file is a command-line, stand-alone,
run-time debugger that works only on managed code. You can debug any
application that is written in a language that the common language runtime
supports, (for example, Microsoft Visual Basic, Microsoft Visual C#, and so
on). However, you cannot perform remote debugging. This debugger requires the
least amount of memory of the three debuggers in this article. For more
information about CorDbg.exe, refer to the following topic in the Visual Studio
.NET Help documentation:
- The Microsoft CLR Debugger (DbgCLR.exe) is also a
stand-alone debugger. However, DbgCLR.exe has a Windows user interface. For
more information about DbgCLR.exe, refer to the following topic in the Visual
Studio .NET Help documentation:
In addition to using the debugger tools, you may need to adjust
some settings in your application to help you troubleshoot or to help maximize
performance of the system. For more information about the
System.Diagnostics namespace and the main classes in this namespace (
Debug and
Trace), as well as about performance monitoring classes, refer to the
following topic in the Visual Studio .NET Help documentation:
When you want to optimize the application's performance, you need
some additional tools. For more information about these tools that can help you
profile and monitor performance, refer to the following topic in the Visual
Studio .NET Help documentation:
In addition to the debuggers and tracing facilities, the .NET
Framework includes several tools that can help you troubleshoot your
application. For a list of these tools, refer to the following Visual Studio
.NET Help documentation:
Key debugging concepts and QuickStart tutorials
For information about key debugging concepts, refer to the
following Microsoft QuickStart tutorials:
The Troubleshooting Problems portal can help you to find the
information that you need to troubleshoot a problem. For more information about
the portal, and for links to several topics that are related to debugging and
diagnostics, visit the following MSDN Web site:
Although you may be familiar with earlier versions of the
debugger, visit the following MSDN Web sites for more information about the new
features in the Visual Basic .NET debugger:
Regardless of the type of application that you are developing
(for example, a Web service, a Windows service, or a Microsoft ASP.NET
application), you can find specific topics about how to debug in the Help
documentation. For more information about these specialized topics, refer to
the following Visual Studio .NET Help documentation:
HowTo Articles
HowTo articles provide step-by-step instructions about how to
accomplish specific tasks. For a list of How To articles about Visual Studio
.NET, search the Microsoft Knowledge Base by running the following query, and
then narrow your search by providing additional search criteria:
HowTo Article SearchWalkthroughs and WebCasts
Walkthroughs provide mini-tutorials that walk you through the
debugging process of some types of applications. For more information about
debugging samples, refer to the following Visual Studio .NET Help
documentation:
Troubleshooting
If you encounter problems and need answers to your questions,
consult the MSDN newsgroups. The MSDN newsgroups are the best place to obtain
answers to your questions. In the MSDN newsgroups, you can share your
experiences with your peers or search the Microsoft Knowledge Base for articles
about specific issues:
For additional information, click the
following article numbers to view the articles in the Microsoft Knowledge Base:
303067Â
(http://kbalertz.com/Feedback.aspx?kbNumber=303067/
)
Error message: Unable to start debugging. Unable to start program <application name.exe>
301058Â
(http://kbalertz.com/Feedback.aspx?kbNumber=301058/
)
How to debug an ASP.NET Application with the Microsoft CLR debugger
306172Â
(http://kbalertz.com/Feedback.aspx?kbNumber=306172/
)
Common errors when you debug ASP.NET applications in Visual Studio .NET
313417Â
(http://kbalertz.com/Feedback.aspx?kbNumber=313417/
)
How to trace and debug in Visual Basic .NET
307169Â
(http://kbalertz.com/Feedback.aspx?kbNumber=307169/
)
BUG: Known issues with Cordbg.exe