Misplaced Pages

WinDbg

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

WinDbg is a multipurpose debugger for the Microsoft Windows computer operating system , distributed by Microsoft. Debugging is the process of finding and resolving errors in a system ; in computing it also includes exploring the internal operation of software as a help to development. It can be used to debug user mode applications, device drivers , and the operating system itself in kernel mode .

#563436

108-476: Like the Visual Studio Debugger , WinDbg has a graphical user interface (GUI), but is more powerful and has little else in common. WinDbg can automatically load debugging symbol files (e.g., PDB files) from a server by using a unique ID embedded in the executable (using the "RSDS Guid") via SymSrv (SymSrv.dll), instead of requiring users to manually find the files. If a private symbol server

216-636: A code editor supporting IntelliSense (the code completion component) as well as code refactoring . The integrated debugger works as both a source-level debugger and as a machine-level debugger. Other built-in tools include a code profiler , designer for building GUI applications, web designer , class designer, and database schema designer. It accepts plug-ins that expand the functionality at almost every level—including adding support for source control systems (like Subversion and Git ) and adding new toolsets like editors and visual designers for domain-specific languages or toolsets for other aspects of

324-550: A concurrent build system, among others. It ships with an enhanced set of UI widgets, both for Windows Forms and WPF . It also includes a multithreaded build engine ( MSBuild ) to compile multiple source files (and build the executable file) in a project across multiple threads simultaneously. It also includes support for compiling icon resources in PNG format, introduced in Windows Vista. An updated XML Schema designer

432-413: A debugger that works both as a source-level debugger and as a machine-level debugger. It works with both managed code as well as native code and can be used for debugging applications written in any language supported by Visual Studio. In addition, it can also attach to running processes, monitor, and debug those processes. If source code for the running process is available, it displays the code as it

540-468: A high-level programming language (compared to the low-level ISA abstraction of the system VM). Process VMs are implemented using an interpreter ; performance comparable to compiled programming languages can be achieved by the use of just-in-time compilation . This type of VM has become popular with the Java programming language , which is implemented using the Java virtual machine . Other examples include

648-581: A modeless list box over the code editor window, in proximity of the editing cursor . In Visual Studio 2008 onwards, it can be made temporarily semi-transparent to see the code obstructed by it. The code editor is used for all supported languages. The code editor in Visual Studio also supports setting bookmarks in code for quick navigation. Other navigational aids include collapsing code blocks and incremental search , in addition to normal text search and regex search. The code editor also includes

756-440: A 32-bit application, Visual C++ 2005 supports compiling for x86-64 (AMD64 and Intel 64) as well as IA-64 ( Itanium ). The Platform SDK included 64-bit compilers and 64-bit versions of the libraries. Microsoft also announced Visual Studio Tools for Applications as the successor to Visual Basic for Applications (VBA) and VSA (Visual Studio for Applications). VSTA 1.0 was released to manufacturing along with Office 2007 . It

864-502: A certain position) and watches (which monitor the values of variables as the execution progresses). Breakpoints can be conditional, meaning they get triggered when the condition is met. Code can be stepped over , i.e., run one line (of source code) at a time. It can either step into functions to debug inside it, or step over it, i.e., the execution of the function body isn't available for manual inspection. The debugger supports Edit and Continue , i.e., it allows code to be edited as it

972-523: A commercial license; Enterprise organizations require a commercial license for use outside of the noted exceptions. Visual Studio Community is oriented towards individual developers and small teams. As of Visual Studio 2010, the Professional edition is the entry level commercial edition of Visual Studio. (Previously, a more feature restricted Standard edition was available.) It provides an IDE for all supported development languages. MSDN support

1080-820: A factor of up to 45. For Windows 8 and later, kernel debugging over network is allowed, allowing fast kernel debugging without special configuration. The WinDbg protocol is not documented, but is supported by the IDA Pro and radare2 disassemblers . Visual Studio Debugger Visual Studio is an integrated development environment (IDE) developed by Microsoft . It is used to develop computer programs including websites , web apps , web services and mobile apps . Visual Studio uses Microsoft software development platforms including Windows API , Windows Forms , Windows Presentation Foundation (WPF), Microsoft Store and Microsoft Silverlight . It can produce both native code and managed code . Visual Studio includes

1188-433: A format called Microsoft Intermediate Language (MSIL) or Common Intermediate Language (CIL). When a CIL application executes, it is compiled while being executed into the appropriate machine language for the platform it is being executed on, thereby making code portable across several platforms. Programs compiled into CIL can be executed only on platforms which have an implementation of Common Language Infrastructure . It

SECTION 10

#1732798059564

1296-597: A limited subset of the BCL source is available, with more library support planned for later. On April 12, 2010, Microsoft released Visual Studio 2010, codenamed Dev10 , and .NET Framework 4 . It is available for Windows Server 2003 SP2, Windows XP SP3, Windows Vista SP2 and Windows Server 2008 SP2 and has support for Windows Server 2008 R2 , as well as for Windows 7 . It is the last version to support Windows XP SP3 , Windows Server 2003 SP2 , Windows Server 2003 R2 , Windows Vista SP2 and Windows Server 2008 SP2 , and

1404-476: A local web server, separate from IIS , that can host ASP.NET applications during development and testing. It also supports all SQL Server 2005 databases. Database designers were upgraded to support the ADO.NET 2.0 , which is included with .NET Framework 2.0. C++ also got a similar upgrade with the addition of C++/CLI which is slated to replace the use of Managed C++ . Other new features of Visual Studio 2005 include

1512-641: A multi-item clipboard and a task list. The code editor supports code snippets, which are saved templates for repetitive code and can be inserted into code and customized for the project being worked on. A management tool for code snippets is built in as well. These tools are surfaced as floating windows which can be set to automatically hide when unused or docked to the side of the screen. The code editor in Visual Studio also supports code refactoring including parameter reordering, variable and method renaming, interface extraction, and encapsulation of class members inside properties, among others. Visual Studio includes

1620-478: A nested guest virtual machine does not need to be homogeneous with its host virtual machine; for example, application virtualization can be deployed within a virtual machine created by using hardware virtualization . Nested virtualization becomes more necessary as widespread operating systems gain built-in hypervisor functionality, which in a virtualized environment can be used only if the surrounding hypervisor supports nested virtualization; for example, Windows 7

1728-403: A new HTML / CSS editor influenced by Microsoft Expression Web are included. J# is not included. Visual Studio 2008 requires .NET 3.5 Framework and by default configures compiled assemblies to run on .NET Framework 3.5, but it also supports multi-targeting which lets the developers choose which version of the .NET Framework (out of 2.0, 3.0, 3.5, Silverlight CoreCLR or .NET Compact Framework)

1836-734: A new programming language, that targets .NET. It also introduced the successor to Visual J++ called Visual J#. Visual J# programs use Java's language-syntax. However, unlike Visual J++ programs, Visual J# programs can only target the .NET Framework, not the Java Virtual Machine that all other Java tools target. Visual Basic changed drastically to fit the new framework, and the new version was called Visual Basic .NET. Microsoft also added extensions to C++, called Managed Extensions for C++ , so .NET programs could be created in C++. Visual Studio .NET can produce applications targeting Windows (using

1944-431: A normal application inside a host OS and supports a single process. It is created when that process is started and destroyed when it exits. Its purpose is to provide a platform -independent programming environment that abstracts away details of the underlying hardware or operating system and allows a program to execute in the same way on any platform. A process VM provides a high-level abstraction – that of

2052-673: A popular approach to implementing early microcomputer software, including Tiny BASIC and adventure games, from one-off implementations such as Pyramid 2000 to a general-purpose engine like Infocom 's z-machine , which Graham Nelson argues is "possibly the most portable virtual machine ever created". Significant advances occurred in the implementation of Smalltalk -80, particularly the Deutsch/Schiffmann implementation which pushed just-in-time (JIT) compilation forward as an implementation approach that uses process virtual machine. Later notable Smalltalk VMs were VisualWorks ,

2160-616: A set of functions that are used to implement various source control functionality, with a standard Visual Studio user interface. MSSCCI was first used to integrate Visual SourceSafe with Visual Studio 6.0 but was later opened up via the Visual Studio SDK. Visual Studio .NET 2002 used MSSCCI 1.1, and Visual Studio .NET 2003 used MSSCCI 1.2. Visual Studio 2005, 2008, and 2010 use MSSCCI Version 1.3, which adds support for rename and delete propagation, as well as asynchronous opening. Visual Studio supports running multiple instances of

2268-451: A specific programming language, but are embedded in an existing language; typically such a system provides bindings for several languages (e.g., C and Fortran ). Examples are Parallel Virtual Machine (PVM) and Message Passing Interface (MPI). Both system virtual machines and process virtual machines date to the 1960s and remain areas of active development. System virtual machines grew out of time-sharing , as notably implemented in

SECTION 20

#1732798059564

2376-607: A system virtual machine can be considered a generalization of the concept of virtual memory that historically preceded it. IBM's CP/CMS , the first systems to allow full virtualization , implemented time sharing by providing each user with a single-user operating system, the Conversational Monitor System (CMS). Unlike virtual memory, a system virtual machine entitled the user to write privileged instructions in their code. This approach had certain advantages, such as adding input/output devices not allowed by

2484-538: Is a Windows Debugger extension used to debug .NET Framework 4 applications. WinDbg allows debugging a Microsoft Windows kernel running on a virtual machine by VMware , VPC or Parallels using a named pipe . This can be achieved by using a virtual COM port . In the case of VMware and VirtualBox , the VirtualKD extension adds native support for VM debugging to the Windows kernel, claiming to speed debugging by

2592-416: Is a standard Windows Debugger extension that ships with WinDBG and is loaded by default. The most commonly used command is !analyze -v , which analyzes the current state of the program being debugged and the machine/process state at the moment of crash or hang. This command is often able to debug the current problem in a completely automated fashion. When used without any switches, !analyze simply returns

2700-493: Is also used to implement the "guest" environments, and applications running in a given "guest" environment view it as a stand-alone system. The pioneer implementation was FreeBSD jails ; other examples include Docker , Solaris Containers , OpenVZ , Linux-VServer , LXC , AIX Workload Partitions , Parallels Virtuozzo Containers, and iCore Virtual Accounts. A snapshot is a state of a virtual machine, and generally its storage devices, at an exact point in time. A snapshot enables

2808-463: Is an example of such snapshots. Restoring a snapshot consists of discarding or disregarding all overlay layers that are added after that snapshot, and directing all new changes to a new overlay. The snapshots described above can be moved to another host machine with its own hypervisor; when the VM is temporarily stopped, snapshotted, moved, and then resumed on the new host, this is known as migration. If

2916-489: Is available as MSDN Essentials or the full MSDN library depending on licensing. It supports XML and XSLT editing, and can create deployment packages that only use ClickOnce and MSI . It includes tools like Server Explorer and integration with Microsoft SQL Server also. Windows Mobile development support was included in Visual Studio 2005 Standard, however, with Visual Studio 2008, it is only available in Professional and higher editions. Windows Phone 7 development support

3024-479: Is available as a free download. After the release of Visual Studio 2008, Microsoft created the Visual Studio Gallery. It serves as the central location for posting information about extensions to Visual Studio. Community developers as well as commercial developers can upload information about their extensions to Visual Studio .NET 2002 through Visual Studio 2010. Users of the site can rate and review

3132-528: Is available in the following editions or SKUs : The Community edition was announced on November 12, 2014, as a new free version, with similar functionality to Visual Studio Professional. Prior to this date, the only free editions of Visual Studio were the feature-limited Express variants. Unlike the Express variants , Visual Studio Community supports multiple languages, and provides support for extensions. Individual developers have no restrictions on their use of

3240-519: Is available via plug-ins . Java (and J# ) were supported in the past. The most basic edition of Visual Studio, the Community edition, is available free of charge. The slogan for Visual Studio Community edition is "Free, fully-featured IDE for students, open-source and individual developers". As of February 19, 2024 , Visual Studio 2022 is a current production-ready version. Visual Studio 2013, 2015 and 2017 are on Extended Support, while 2019

3348-543: Is being debugged. When debugging, if the mouse pointer hovers over any variable, its current value is displayed in a tooltip ("data tooltips"), where it can also be modified if desired. During coding, the Visual Studio debugger lets certain functions be invoked manually from the Immediate tool window. The parameters to the method are supplied at the Immediate window. Visual Studio includes many visual designers to aid in

WinDbg - Misplaced Pages Continue

3456-453: Is being run. If source code is not available, it can show the disassembly . The Visual Studio debugger can also create memory dumps as well as load them later for debugging. Multi-threaded programs are also supported. The debugger can be configured to be launched when an application running outside the Visual Studio environment crashes. The Visual Studio Debugger allows setting breakpoints (which allow execution to be stopped temporarily at

3564-548: Is capable of running Windows XP applications inside a built-in virtual machine. Furthermore, moving already existing virtualized environments into a cloud, following the Infrastructure as a Service (IaaS) approach, is much more complicated if the destination IaaS platform does not support nested virtualization. The way nested virtualization can be implemented on a particular computer architecture depends on supported hardware-assisted virtualization capabilities. If

3672-670: Is commonly called the Blue Screen of Death which occurs when a bug check is issued. It can also be used to debug user-mode crash dumps. This is known as post-mortem debugging . WinDbg is distributed as a standalone package from the Windows Debugger Portal and via the Microsoft Store . The WinDBG Debugger Engine is the common debugging back-end between WinDbg and command line debugger front-ends like KD , CDB , and NTSD . Most commands can be used as

3780-531: Is configured, the symbols can be correlated with the source code for the binary. This eases the burden of debugging problems that have various versions of binaries installed on the debugging target by eliminating the need for finding and installing specific symbols version on the debug host. Microsoft has a public symbol server that has most of the public symbols for Windows 2000 and later versions of Windows (including service packs ). WinDbg can also be used for debugging kernel-mode memory dumps , created after what

3888-409: Is included with Office 2007 and is also part of the Visual Studio 2005 SDK. VSTA consists of a customized IDE, based on the Visual Studio 2005 IDE, and a runtime that can be embedded in applications to expose its features via the .NET object model. Office 2007 applications continue to integrate with VBA, except for InfoPath 2007 which integrates with VSTA. Version 2.0 of VSTA (based on Visual Studio 2008)

3996-539: Is on Mainstream Support. Visual Studio does not support any programming language, solution or tool intrinsically; instead, it allows the plugging of functionality coded as a VSPackage. When installed, the functionality is available as a Service . The IDE provides three services: SVsSolution, which provides the ability to enumerate projects and solutions; SVsUIShell, which provides windowing and UI functionality (including tabs, toolbars, and tool windows); and SVsShell, which deals with registration of VSPackages. In addition,

4104-562: Is possible to run CIL programs in Linux or Mac OS X using non-Microsoft .NET implementations like Mono and DotGNU . This was the first version of Visual Studio to require an NT -based Windows platform. The installer enforces this requirement, and is the last version to support Windows NT 4.0 SP6 or later and Windows 2000 before SP3. Visual Studio .NET 2002 shipped in four editions: Academic, Professional, Enterprise Developer, and Enterprise Architect. Microsoft introduced C# (C-sharp),

4212-540: Is the Windows Debugger Extension used to debug .NET Framework applications that use the .NET CLR version 2.0 (.NET Framework versions 2 through 3.5). Psscor2 was developed for internal use at Microsoft as part of their Product Support Services tools. While Microsoft only released Psscor2 in 2010 Microsoft had been publishing commands from the extension several years before, causing difficulty for those who were trying to follow their processes. Psscor4

4320-449: Is the last version available for Windows XP SP2 , Windows Server 2003 SP1 , as well as the only version to support Windows Vista before SP2 and Windows Server 2008 before SP2 and the last version to support targeting Windows 2000 for C++ applications. Visual Studio 2008 is focused on development of Windows Vista , 2007 Office system, and Web applications. For visual design, a new Windows Presentation Foundation visual designer and

4428-450: Is the last version to run on Windows 2000 and also the last version able to target Windows 98 and Windows Me for C++ applications. Visual Studio 2005's internal version number is 8.0 while the file format version is 9.0. Microsoft released Service Pack 1 for Visual Studio 2005 on December 14, 2006. An additional update for Service Pack 1 that offers Windows Vista compatibility was made available on June 3, 2007. Visual Studio 2005

WinDbg - Misplaced Pages Continue

4536-485: Is with all the included debugger front-ends. In 2023 Microsoft released a new version of WinDbg which was announced in 2017 as WinDbg Preview (WinDbgX). One of the most notable features is so called Time-Travel-Debugging (TTD). TTD allows a user to record an actual live process (at a performance penalty) to later debug going back and forth in time. In addition, WinDbg has updated user interface, support for dark mode and keyboard navigation. It also allows writing scripts in

4644-723: The CP-40 and SIMMON , which used full virtualization , and were early examples of hypervisors . The first widely available virtual machine architecture was the CP-67 /CMS (see History of CP/CMS for details). An important distinction was between using multiple virtual machines on one host system for time-sharing, as in M44/44X and CP-40, and using one virtual machine on a host system for prototyping, as in SIMMON. Emulators , with hardware emulation of earlier systems for compatibility, date back to

4752-582: The Compatible Time-Sharing System (CTSS). Time-sharing allowed multiple users to use a computer concurrently : each program appeared to have full access to the machine, but only one program was executed at the time, with the system switching between programs in time slices, saving and restoring state each time. This evolved into virtual machines, notably via IBM's research systems: the M44/44X , which used partial virtualization , and

4860-554: The IBM System/360 in 1963, while the software emulation (then-called "simulation") predates it. Process virtual machines arose originally as abstract platforms for an intermediate language used as the intermediate representation of a program by a compiler ; early examples date to around 1964 with the META II compiler-writing system using it for both syntax description and target code generation. A notable 1966 example

4968-532: The JavaScript language. WinDbg allows the loading of extension DLLs that can augment the debugger's supported commands and allow for help in debugging specific scenarios: for example, displaying an MSXML document given an IXMLDOMDocument, or debugging the Common Language Runtime (CLR) . These extensions are a large part of what makes WinDbg such a powerful debugger. WinDbg is used by

5076-548: The Microsoft Windows product team to build Windows, and everything needed to debug Windows is included in these extension DLLs. Extension commands are always prefixed with ! . While some extensions are used only inside Microsoft, most of them are part of the public Debugging Tools for Windows package. The extension model is documented in the help file included with the Debugging Tools for Windows. Ext

5184-472: The Parrot virtual machine and the .NET Framework , which runs on a VM called the Common Language Runtime . All of them can serve as an abstraction layer for any computer language. A special case of process VMs are systems that abstract over the communication mechanisms of a (potentially heterogeneous) computer cluster . Such a VM does not consist of a single process, but one process per physical machine in

5292-592: The Squeak Virtual Machine , and Strongtalk . A related language that produced a lot of virtual machine innovation was the Self programming language, which pioneered adaptive optimization and generational garbage collection . These techniques proved commercially successful in 1999 in the HotSpot Java virtual machine. Other innovations include a register-based virtual machine, to better match

5400-599: The Windows Presentation Foundation (WPF), whereas the internals have been redesigned using Managed Extensibility Framework (MEF) that offers more extensibility points than previous versions of the IDE that enabled add-ins to modify the behavior of the IDE. Virtual machine In computing , a virtual machine ( VM ) is the virtualization or emulation of a computer system . Virtual machines are based on computer architectures and provide

5508-435: The city of the same name ). It includes an upgrade to the .NET Framework, version 1.1, and is the first release to support developing programs for mobile devices, using ASP.NET or the .NET Compact Framework. The Visual C++ compiler's standards-compliance improved, especially in the area of partial template specialization . Visual C++ Toolkit 2003 is a version of the same C++ compiler shipped with Visual Studio .NET 2003 without

SECTION 50

#1732798059564

5616-593: The software development lifecycle (like the Azure DevOps client: Team Explorer). Visual Studio supports 36 different programming languages and allows the code editor and debugger to support (to varying degrees) nearly any programming language, provided a language-specific service exists. Built-in languages include C , C++ , C++/CLI , Visual Basic .NET , C# , F# , JavaScript , TypeScript , XML , XSLT , HTML , and CSS . Support for other languages such as Python , Ruby , Node.js , and M among others

5724-401: The "Deployment Designer" which allows application designs to be validated before deployments, an improved environment for web publishing when combined with ASP.NET 2.0 and load testing to see application performance under various sorts of user loads. Starting with the 2005 edition, Visual Studio also added extensive 64-bit support. While the host development environment itself is only available as

5832-402: The 'host', and the virtual machine emulated on that machine is generally referred to as the 'guest'. A host can emulate several guests, each of which can emulate different operating systems and hardware platforms. The desire to run multiple operating systems was the initial motive for virtual machines, so as to allow time-sharing among several single-tasking operating systems. In some respects,

5940-505: The Community edition. The following uses also allow unlimited usage: contributing to Open Source projects, academic research, in a classroom learning environment and for developing and testing device drivers for the Windows operating system. All other use by an organization depends on its classification as an Enterprise (more than 250 employees or more than 1 million USD in annual revenue, per Microsoft). Non-Enterprises may use up to 5 copies without restriction, user number 6 and higher require

6048-643: The IBM CP-40 and CP-67 , predecessors of the VM family. Examples outside the mainframe field include Parallels Workstation , Parallels Desktop for Mac , VirtualBox , Virtual Iron , Oracle VM , Virtual PC , Virtual Server , Hyper-V , VMware Fusion , VMware Workstation , VMware Server (discontinued, formerly called GSX Server), VMware ESXi , QEMU , Adeos , Mac-on-Linux, Win4BSD, Win4Lin Pro , and Egenera vBlade technology. In hardware-assisted virtualization,

6156-731: The IDE is also responsible for coordinating and enabling communication between services. All editors, designers, project types and other tools are implemented as VSPackages. Visual Studio uses COM to access the VSPackages. The Visual Studio SDK also includes the Managed Package Framework ( MPF ), which is a set of managed wrappers around the COM-interfaces that allow the Packages to be written in any CLI compliant language . However, MPF does not provide all

6264-536: The IDE that Microsoft made freely available. As of 2010 it is no longer available and the Express Editions have superseded it. Visual Studio .NET 2003 also supports Managed C++, which is the predecessor of C++/CLI. The internal version number of Visual Studio .NET 2003 is version 7.1 while the file format version is 8.0. Visual Studio .NET 2003 drops support for Windows NT 4.0, and is the last version to support Windows 2000 SP3 and Windows XP before SP2 and

6372-480: The IDE via COM and can be created in any COM-compliant languages. Packages are created using the Visual Studio SDK and provide the highest level of extensibility. They can create designers and other tools, as well as integrate other programming languages. The Visual Studio SDK provides unmanaged APIs as well as a managed API to accomplish these tasks. However, the managed API isn't as comprehensive as

6480-509: The MPF includes wrappers for writing managed language services. Visual Studio does not include any source control support built in but it defines two alternative ways for source control systems to integrate with the IDE. A Source Control VSPackage can provide its own customised user interface. In contrast, a source control plugin using the MSSCCI (Microsoft Source Code Control Interface) provides

6588-690: The STL/CLR, which is a port of the C++ Standard Template Library (STL) containers and algorithms to managed code . STL/CLR defines STL-like containers, iterators and algorithms that work on C++/CLI managed objects. Visual Studio 2008 features include an XAML -based designer (codenamed Cider ), workflow designer , LINQ to SQL designer (for defining the type mappings and object encapsulation for SQL Server data), XSLT debugger, JavaScript Intellisense support, JavaScript Debugging support, support for UAC manifests ,

SECTION 60

#1732798059564

6696-445: The VM continues operation from the last-known coherent state, rather than the current state, based on whatever materials the backup server was last provided with. Nested virtualization refers to the ability of running a virtual machine within another, having this general concept extendable to an arbitrary depth. In other words, nested virtualization refers to running one or more hypervisors inside another hypervisor. The nature of

6804-457: The VM for a location on its physical disk are transparently translated into an operation on the corresponding file. Once such a translation layer is present, however, it is possible to intercept the operations and send them to different files, depending on various criteria. Every time a snapshot is taken, a new file is created, and used as an overlay for its predecessors. New data is written to the topmost overlay; reading existing data, however, needs

6912-436: The Visual Studio 2008 IDE is available under a shared source license to some of Microsoft 's partners and ISVs . Microsoft released Service Pack 1 for Visual Studio 2008 on August 11, 2008. The internal version number of Visual Studio 2008 is version 9.0 while the file format version is 10.0. Visual Studio 2008 requires Windows XP Service Pack 2 plus Windows Installer 3.1, Windows Server 2003 Service Pack 1 or later. It

7020-611: The Windows Forms part of the .NET Framework), the Web (using ASP.NET and Web Services ) and, with an add-in, portable devices (using the .NET Compact Framework). The internal version number of Visual Studio .NET 2002 is version 7.0. Microsoft released Service Pack 1 for Visual Studio .NET 2002 in March 2005. In April 2003, Microsoft introduced a minor upgrade to Visual Studio .NET called Visual Studio .NET 2003, codenamed Everett (for

7128-481: The assembly runs on. Visual Studio 2008 also includes new code analysis tools, including the new Code Metrics tool (only in Team Edition and Team Suite Edition). For Visual C++ , Visual Studio adds a new version of Microsoft Foundation Classes (MFC 9.0) that adds support for the visual styles and UI controls introduced with Windows Vista . For native and managed code interoperability, Visual C++ introduces

7236-449: The cluster. They are designed to ease the task of programming concurrent applications by letting the programmer focus on algorithms rather than the communication mechanisms provided by the interconnect and the OS. They do not hide the fact that communication takes place, and as such do not attempt to present the cluster as a single machine. Unlike other process VMs, these systems do not provide

7344-441: The code window, along with indicating the location of the currently executing instruction in the current thread, the currently executing instructions in other threads are also pointed out. The Visual Studio debugger supports integrated debugging of the .NET 3.5 Framework Base Class Library (BCL) which can dynamically download the BCL source code and debug symbols and allow stepping into the BCL source during debugging. As of 2010

7452-522: The development of applications. These tools include: Microsoft Visual Studio can write high-quality code with comprehensive testing tools to aid in the development of applications. These tools include: Unit testing , IntelliTest, Live Unit Testing, Test Explorer, CodeLens test indicators, code coverage analysis, Fakes. Visual Studio allows developers to write extensions for Visual Studio to extend its capabilities. These extensions "plug into" Visual Studio and extend its functionality. Extensions come in

7560-478: The development on the platform independent .NET Framework . Visual Studio 6.0 was the last version to include Visual J++, which Microsoft removed as part of a settlement with Sun Microsystems that required Microsoft Internet Explorer not to provide support for the Java Virtual Machine . Visual Studio 6.0 came in two editions: Professional and Enterprise. The Enterprise edition contained extra features not found in Professional edition, including: Visual Studio

7668-411: The developmental stage, so it runs inside a sandbox . Virtual machines have other advantages for operating system development and may include improved debugging access and faster reboots. Multiple VMs running their own guest operating system are frequently engaged for server consolidation. A process VM, sometimes called an application virtual machine , or Managed Runtime Environment (MRE), runs as

7776-533: The different AppIds. The Visual Studio Express edition products are installed with their own AppIds, but the Standard, Professional, and Team Suite products share the same AppId. Consequently, one can install the Express editions side-by-side with other editions, unlike the other editions which update the same installation. The professional edition includes a superset of the VSPackages in the standard edition, and

7884-595: The environment (each with its own set of VSPackages). The instances use different registry hives (see MSDN 's definition of the term "registry hive " in the sense used here) to store their configuration state and are differentiated by their AppId (Application ID). The instances are launched by an AppId-specific .exe that selects the AppId, sets the root hive, and launches the IDE. VSPackages registered for one AppId are integrated with other VSPackages for that AppId. The various product editions of Visual Studio are created using

7992-437: The extensions to help assess the quality of extensions being posted. An extension is stored in a VSIX file. Internally a VSIX file is a ZIP file that contains some XML files, and possibly one or more DLL's. One of the main advantages of these extensions is that they do not require Administrator rights to be installed. RSS feeds to notify users on updates to the site and tagging features are also planned. Microsoft Visual Studio

8100-513: The form of macros , add-ins , and packages . Macros represent repeatable tasks and actions that developers can record programmatically for saving, replaying, and distributing. Macros, however, cannot implement new commands or create tool windows. They are written using Visual Basic and are not compiled. Add-Ins provide access to the Visual Studio object model and can interact with the IDE tools. Add-Ins can be used to implement new functionality and can add new tool windows. Add-Ins are plugged into

8208-818: The functionality exposed by the Visual Studio COM interfaces. The services can then be consumed for creation of other packages, which add functionality to the Visual Studio IDE. Support for programming languages is added by using a specific VSPackage called a Language Service . A language service defines various interfaces which the VSPackage implementation can implement to add support for various functionalities. Functionalities that can be added this way include syntax coloring, statement completion, brace matching, parameter information tooltips, member lists, and error markers for background compilation. If

8316-525: The functionality of a physical computer. Their implementations may involve specialized hardware, software, or a combination of the two. Virtual machines differ and are organized by their function, shown here: Some virtual machine emulators, such as QEMU and video game console emulators , are designed to also emulate (or "virtually imitate") different system architectures, thus allowing execution of software applications and operating systems written for another CPU or architecture. OS-level virtualization allows

8424-931: The hardware provides architectural support that facilitates building a virtual machine monitor and allows guest OSes to be run in isolation. Hardware-assisted virtualization was first introduced on the IBM System/370 in 1972, for use with VM/370 , the first virtual machine operating system offered by IBM as an official product. In 2005 and 2006, Intel and AMD provided additional hardware to support virtualization. Sun Microsystems (now Oracle Corporation ) added similar features in their UltraSPARC T-Series processors in 2005. Examples of virtualization platforms adapted to such hardware include KVM , VMware Workstation , VMware Fusion , Hyper-V , Windows Virtual PC , Xen , Parallels Desktop for Mac , Oracle VM Server for SPARC , VirtualBox and Parallels Workstation . In 2006, first-generation 32- and 64-bit x86 hardware support

8532-545: The installation. The Isolated mode of the shell creates a new AppId where the packages are installed. These are to be started with a different executable. It is aimed for development of custom development environments, either for a specific language or a specific scenario. The Integrated mode installs the packages into the AppId of the Professional/Standard/Team System editions, so that the tools integrate into these editions. The Visual Studio Shell

8640-506: The interface is implemented, the functionality will be available for the language. Language services are implemented on a per-language basis. The implementations can reuse code from the parser or the compiler for the language. Language services can be implemented either in native code or managed code . For native code, either the native COM interfaces or the Babel Framework (part of Visual Studio SDK) can be used. For managed code,

8748-469: The internal common language runtime (CLR) environment. This tool requires a project to have unmanaged debugging enabled. SOS.dll is automatically installed with the .NET Framework. To use SOS.dll in Visual Studio, install the Windows Driver Kit (WDK) . To debug a process or memory dump, the sos.dll version must match the .NET Framework version. Psscor2 and Psscor4 are a superset of SOS. Psscor2

8856-416: The older snapshots are kept in sync regularly, this operation can be quite fast, and allow the VM to provide uninterrupted service while its prior physical host is, for example, taken down for physical maintenance. Similar to the migration mechanism described above, failover allows the VM to continue operations if the host fails. Generally it occurs if the migration has stopped working. However, in this case,

8964-450: The only version to support Windows 7 before SP1 and Windows Server 2008 R2 before SP1. The Visual Studio 2010 IDE was redesigned which, according to Microsoft , clears the UI organization and "reduces clutter and complexity." The new IDE better supports multiple document windows and floating tool windows, while offering better multi-monitor support. The IDE shell has been rewritten using

9072-714: The only version to support Windows Server 2003 before SP1. Visual Studio .NET 2003 shipped in five editions: Academic, Standard, Professional, Enterprise Developer, and Enterprise Architect. The Visual Studio .NET 2003 Enterprise Architect edition includes an implementation of Microsoft Visio 2002's modeling technologies, including tools for creating Unified Modeling Language -based visual representations of an application's architecture, and an object-role modeling (ORM) and logical database-modeling solution. "Enterprise Templates" were also introduced, to help larger development teams standardize coding styles and enforce policies around component usage and property settings. Service Pack 1

9180-486: The overlay hierarchy to be scanned, resulting in accessing the most recent version. Thus, the entire stack of snapshots is virtually a single coherent disk; in that sense, creating snapshots works similarly to the incremental backup technique. Other components of a virtual machine can also be included in a snapshot, such as the contents of its random-access memory (RAM), BIOS settings, or its configuration settings. " Save state " feature in video game console emulators

9288-548: The professional edition has three CDs, and the enterprise four CDs. It included Visual J++ 1.1 for Java programming and introduced Visual InterDev for creating dynamically generated web sites using Active Server Pages. There was a single companion CD that contained the Microsoft Developer Network library . Visual Studio 97 is only compatible with Windows 95 and Windows NT 4.0 . It is the last version to support Windows NT 4.0 before SP3. Visual Studio 97

9396-421: The resources of a computer to be partitioned via the kernel . The terms are not universally interchangeable. A "virtual machine" was originally defined by Popek and Goldberg as "an efficient, isolated duplicate of a real computer machine." Current use includes virtual machines that have no direct correspondence to any real hardware. The physical, "real-world" hardware running the VM is generally referred to as

9504-421: The results of its analysis. The -v and -vv give further details about that analysis. Wow6432exts is a standard Windows Debugger extension that ships with WinDBG. It is used to debug processes running inside WoW64 (32-bit processes running in 64-bit Windows). The SOS (Son of Strike) Debugging Extension (SOS.dll) assists in debugging managed programs in Visual Studio and WinDbg by providing information about

9612-440: The same computer (e.g., Windows , Linux , or prior versions of an operating system) to support future software. The use of virtual machines to support separate guest operating systems is popular in regard to embedded systems . A typical use would be to run a real-time operating system simultaneously with a preferred complex operating system, such as Linux or Windows. Another use would be for novel and unproven software still in

9720-453: The same physical page by a technique termed kernel same-page merging (KSM). This is especially useful for read-only pages, such as those holding code segments, which is the case for multiple virtual machines running the same or similar software, software libraries, web servers, middleware components, etc. The guest operating systems do not need to be compliant with the host hardware, thus making it possible to run different operating systems on

9828-415: The standard system. As technology evolves virtual memory for purposes of virtualization, new systems of memory overcommitment may be applied to manage memory sharing among multiple virtual machines on one computer operating system. It may be possible to share memory pages that have identical contents among multiple virtual machines that run on the same physical machine, what may result in mapping them to

9936-626: The team suite includes a superset of the VSPackages in both other editions. The AppId system is leveraged by the Visual Studio Shell in Visual Studio 2008. Visual Studio includes a code editor that supports syntax highlighting and code completion using IntelliSense for variables , functions , methods , loops , and LINQ queries. IntelliSense is supported for the included languages, as well as for XML , Cascading Style Sheets , and JavaScript when developing web sites and web applications . Autocomplete suggestions appear in

10044-520: The underlying hardware, rather than a stack-based virtual machine, which is a closer match for the programming language; in 1995, this was pioneered by the Dis virtual machine for the Limbo language. In full virtualization, the virtual machine simulates enough hardware to allow an unmodified "guest" OS (one designed for the same instruction set ) to be run in isolation. This approach was pioneered in 1966 with

10152-442: The unmanaged one. Extensions are supported in the Standard (and higher) versions of Visual Studio 2005. Express Editions do not support hosting extensions. Visual Studio 2008 introduced the Visual Studio Shell that allows for development of a customized version of the IDE. The Visual Studio Shell defines a set of VSPackages that provide the functionality required in any IDE. On top of that, other packages can be added to customize

10260-429: The virtual machine's state at the time of the snapshot to be restored later, effectively undoing any changes that occurred afterwards. This capability is useful as a backup technique, for example, prior to performing a risky operation. Virtual machines frequently use virtual disks for their storage; in a very simple example, a 10- gigabyte hard disk drive is simulated with a 10-gigabyte flat file . Any requests by

10368-660: The virtual machine, notably in UCSD Pascal (1978); this influenced later interpreters, notably the Java virtual machine (JVM). Another early example was SNOBOL4 (1967), which was written in the SNOBOL Implementation Language (SIL), an assembly language for a virtual machine, which was then targeted to physical machines by transpiling to their native assembler via a macro assembler . Macros have since fallen out of favor, however, so this approach has been less influential. Process virtual machines were

10476-498: Was Visual Studio 97. Before that, Visual Basic, Visual C++, Visual FoxPro and Visual SourceSafe were sold as separate products. Microsoft first released Visual Studio (codenamed Boston , for the city of the same name , thus beginning the VS codenames related to places) in 1997, bundling many of its programming tools together for the first time. Visual Studio 97 came in two editions: Visual Studio Professional and Visual Studio Enterprise,

10584-486: Was added to all editions in Visual Studio 2010. Development for Windows Mobile is no longer supported in Visual Studio 2010. It is superseded by Windows Phone 7 . In addition to the features provided by the Professional edition, the Enterprise edition provides a new set of software development, database development, collaboration, metrics, architecture, testing and reporting tools. The first version of Visual Studio

10692-582: Was also sold as a bundle with the separate IDEs used for Visual C++, Visual Basic and Visual FoxPro. Microsoft released Visual Studio .NET (VS.NET), codenamed Rainier (for Washington's Mount Rainier ), in February 2002 (the beta version was released via Microsoft Developer Network in 2001). The biggest change was the introduction of a managed code development environment using the .NET Framework. Programs developed using .NET are not compiled to machine language (like C++ is, for example) but instead to

10800-518: Was an attempt at using the same development environment for multiple languages. Visual J++, InterDev, and the MSDN Library had all been using the same 'environment', called Developer Studio. Visual Studio was also sold as a bundle with the separate IDEs used for Visual C++, Visual Basic and Visual FoxPro. The next version, version 6.0 (codenamed Aspen , after the ski resort in Colorado),

10908-427: Was found to rarely offer performance advantages over software virtualization. In OS-level virtualization, a physical server is virtualized at the operating system level, enabling multiple isolated and secure virtualized servers to run on a single physical server. The "guest" operating system environments share the same running instance of the operating system as the host system. Thus, the same operating system kernel

11016-479: Was popularized around 1970 by Pascal , notably in the Pascal-P system (1973) and Pascal-S compiler (1975), in which it was termed p-code and the resulting machine as a p-code machine . This has been influential, and virtual machines in this sense have been often generally called p-code machines. In addition to being an intermediate language, Pascal p-code was also executed directly by an interpreter implementing

11124-676: Was released September 13, 2006. Visual Studio 2005, codenamed Whidbey (a reference to Whidbey Island in Puget Sound region ), was released online in October 2005 and to retail stores a few weeks later. Microsoft removed the ".NET" moniker from Visual Studio 2005 (as well as every other product with .NET in its name), but it still primarily targets the .NET Framework, which was upgraded to version 2.0. It requires Windows 2000 with Service Pack 4, Windows XP with at least Service Pack 2 or Windows Server 2003 with at least Service Pack 1. It

11232-550: Was released in April 2008. It is significantly different from the first version, including features such as dynamic programming and support for WPF , WCF , WF , LINQ , and .NET 3.5 Framework. Visual Studio 2008, and Visual Studio Team System 2008 codenamed Orcas (a reference to Orcas Island , also an island in Puget Sound region , like Whidbey for the previous 2005 release), were released to MSDN subscribers on November 19, 2007, alongside .NET Framework 3.5. The source code for

11340-569: Was released in June 1998 and is the last version to support the Windows 9x platform, as well as Windows NT 4.0 before SP6, but after SP2. Each version of each language in part also settled to v6.0, including Visual J++ which was prior v1.1, and Visual InterDev at the first release. The v6 edition of Microsoft was the core environment for the next four releases to provide programmers with an integrated look-alike platform. This led Microsoft to transition

11448-497: Was released separately some time after the release of Visual Studio 2008. Visual Studio Debugger includes features targeting easier debugging of multi-threaded applications. In debugging mode, in the Threads window, which lists all the threads, hovering over a thread displays the stack trace of that thread in tooltips. The threads can directly be named and flagged for easier identification from that window itself. In addition, in

11556-548: Was the O-code machine , a virtual machine that executes O-code (object code) emitted by the front end of the BCPL compiler. This abstraction allowed the compiler to be easily ported to a new architecture by implementing a new back end that took the existing O-code and compiled it to machine code for the underlying physical machine. The Euler language used a similar design, with the intermediate language named P (portable). This

11664-464: Was upgraded to support all the new features introduced in .NET Framework 2.0, including generics and ASP.NET 2.0. The IntelliSense feature in Visual Studio was upgraded for generics and new project types were added to support ASP.NET web services. Visual Studio 2005 additionally introduces support for a new task-based build platform called Microsoft Build Engine ( MSBuild ) which employs a new XML-based project file format. Visual Studio 2005 also includes

#563436