#REDIRECT [[ ru:Microsoft Visual Studio #Debugger]] ▼
{{Unreferenced|date=December 2009}}
The '''Microsoft Visual Studio Debugger''' is a [[debugger]] that ships along with all versions of [[Microsoft Visual Studio]]. This debugger owes much of its feel and functionality to [[CodeView]], a standalone, text-based debugger that shipped with [[Visual C++|Microsoft Visual C++]] version 1.5 and earlier.
{{Rcat shell|
More advanced features of the most recent versions of this debugger include:
{{R to related topic}}
* Full symbol and source integration.
{{R to section}}
* '''Edit and continue''' support, enabling source code to be modified and recompiled on-the-fly without having to exit the current running program or restart the debugger (32 bit applications only).
}}
* Remote machine debugging.
* Attaching and detaching to and from processes (both on the current machine and a remote machine).
* Integrated debugging across programs written in both [[Microsoft .NET|.NET]] and native [[Microsoft Windows|Windows]] languages (calls from [[C Sharp (programming language)|C#]] to [[C++]], for example).
* Full support for C++, including templates and the standard library
* Debugging [[ASP.NET]] [[Web Service]]s.
* Tracing into DLL code when symbolic debugger information is present.
* Standard as well as more advanced [[breakpoint]] features, including conditional, address, data breakpoints.
* Many ways of viewing program state and data, including multiple watch windows, [[thread (computer science)|threads]], [[call stack]], and modules. The way library and user data types are displayed can be configured (e.g., to show contents of a container class, rather than its raw structure).
* [[Scripting language|Scriptability]] or the ability to control via a macro or scripting language. Any language which can talk to [[Component Object Model|COM]] can be used.
* Local and remote debugging of SQL stored procedures on supported versions of Microsoft SQL Server.
The main shortcoming of the Visual Studio Debugger is its inability to trace into [[kernel (computer science)|kernel]]-mode code. However, this is possible using a free [[VisualDDK]] extension. Alternatively, kernel-mode debugging of Windows is generally performed by using [[WinDbg]], KD, or [[SoftICE]].
The Visual Studio Debugger also has no ability to debug [[Lambda-expression#Lambda_calculus_and_programming_languages|Lambda-Expressions]] or [[Linq]]. This is because of the high complexity the debugger would grow to. However, most developers working with Lambda expressions are able to visualize the data through the several memory windows.
Edit-and-continue is held by many developers as Microsoft's greatest asset given unto developers, as a program that is running in memory with a simple mistake (such as "for (i = 0; i < some_var; i++)" can be converted to its correct form "for (i = 0; i < some_var - 1; i++)" without having to stop the current program or exit the debugger. This feature allows very common mistakes to be corrected easily and with great time savings over other solutions which require exiting the program, making the change, recompiling, and then navigating back through the running program to the previous ___location, including those available by the [[GNU Compiler Collection]] chain and debuggers like [[GDB]] and DBX. Still other developers believe that such "sloppy programming techniques" represent a greater philosophical issue related to the mindset of the developer, and should be addressed in other ways such as "teaching them proper coding techniques." This division over belief systems and coding methodology philosophies often causes staunch debate and even moderate hostility between some of the more zealot in both camps.
Debugger Canvas steps through code in the debugger in Visual Studio Ultimate 2010.
<ref name="Debugger Canvas VS10">{{Cite web
|url= http://blogs.msdn.com/b/somasegar/archive/2011/06/13/debugger-canvas-on-devlabs.aspx
|title= Debugger Canvas
|author= S. Somasegar
|publisher= MSDN
|date= 2011-06-13
|accessdate= 2011-06-15}}
</ref>
== References ==
{{reflist}}
[[Category:Debuggers]]
[[Category:Microsoft Visual Studio|Debugger]]
▲[[ru:Microsoft Visual Studio Debugger]]
[[sk:Microsoft Visual Studio Debugger]]
|