Rajesh kumar’s Blog

If you have knowledge, let others light their candles at it.

Archive for the ‘Visual Studio’ Category

Debug the .Net code from remote machine

Posted by Rajesh Kumar on July 11, 2011

Debugging the code from development environment is very easy. The actual problem starts when we want to debug the code that is already deployed in some system (local system, remote system, production server etc.).

It’s because, such environments will not have any SDK installed. However, Microsoft still makes developer’s life easier by allowing us to debug such deployed code from our local machine. This article tries to explain it.

Limitation: Visual Studio Professional, Premium and Ultimate versions can be used to debug the code. Visual studio Express does NOT allow you to debug the code through a process.

What needs to be done?

We need to do two things for debugging from remote machine:

  • Preparing remote system.
  • Attach the deployed code to source code from local machine.

What are required?

We need two things to start the remote debugging:

  • PDB files
  • MSVSMON.exe
  • You must have access to the remote system.
  • Your remote and local system must be in same domain (or in trusted domain list).

If you are not sure what are pdb files, A program database (PDB) file holds debugging and project state information that allows incremental linking of a debug configuration of your program. A PDB file is created when you build with /debug. (extracted from MSDN).

MSVSMON (Microsft Visual Studio remote debugging monitor) acts as an agent from remote system for Visual Studio. It comes with SDK installation and is generally available at C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\Remote Debugger\x64\msvsmon.exe. (x64 indicates your operating system mode).

The most important point to remember is, we must have the same version of PDB files of the original source code deployed on remote machine. Please read this article for more information.

Preparing remote system:

Please feel free to copy the entire x64 (as mentioned above) to the remote machine where the code is deployed and run the msvsmon.exe file. You may see the screen as given below:


Now, move all .pdb files to the bin directory of the deployed application. Now, it’s the time to identify the process id of the application that you want to debug. Task Manager shows list of processes running on the current (remote)and its Ids against them. It is very straight forward for finding process Ids for services or exe files. However, it is bit different for web application. Please read my article here to find out more.

Attach the deployed code to source code from local machine:

Open the source code in Visual Studio. Go to “Debug –> Attach to Process” option. You should be able to view “Attach to Process” window.

Leave the “Transport” to Default. In the “Qualifier” text box, type the text as <DomainName\UserName@ServerName> as displayed in msvsmon.exe window given above and then hit Enter key.

With this, Visual studio makes the connection to remote system and gets all processes list running on remote machine. You may see the screens in local machine and remote machine as below:

image image

Now chose, the right process Id and hit “Attach” button. With this, you are ready to debug the code. Happy debugging Smile.

References: MSDN


Posted in .Net, Debugging, IIS, Visual Studio | Tagged: | 5 Comments »

Visual Studio 2008 Extentions / Power Commands

Posted by Rajesh Kumar on September 24, 2009

Microsoft has released extensions for Visual Studio which makes developers life easy. It has the following features:

  • Enable/Disable PowerCommands in Options dialog
  • Format document on save / Remove and Sort Usings on save
  • Clear All Panes
  • Copy Path
  • Email CodeSnippet
  • Insert Guid Attribute
  • Show All Files
  • Undo Close
  • Collapse Projects
  • Copy Class
  • Paste Class
  • Copy References
  • Paste References
  • Copy As Project Reference
  • Edit Project File
  • Open Containing Folder
  • Open Command Prompt
  • Unload Projects
  • Reload Projects
  • Remove and Sort Usings
  • Extract Constant
  • Clear Recent File List
  • Clear Recent Project List
  • Transform Templates
  • Close All
  • You can find more detailed information and msi file from: PowerCommands

    Posted in .Net, Visual Studio | Leave a Comment »

    Remove unused namespaces from Visual Studio

    Posted by Rajesh Kumar on August 12, 2009

    When we add any new class file, Visual Studio 2008 by default adds few namespaces depending on the project type. But, in real time – we will not be using one or all of the namespaces.

    At the same time, most of us know only few namespace of the objects that we are going to use. So, it is a bit difficult to identify and remove the namespace. So, how can we make the code clean?

    Fortunately, Visual Studio allows to Sort, Remove and Remove & Sort unused namespaces. The following pictures shows you how the class file looks like before and after removing the unused namespaces:

    Default Class Structure

    Default Class StructureContext menu in Visual Studio


    Context menu in Visual Studio

    Context menu in Visual Studio

    Class structure after Removing and Sorting unused namespaces

    Class structure after Removing and Sorting unused namespaces

    This is a very cool and useful feature 🙂

    Posted in .Net, Visual Studio | 2 Comments »