Remote Debugger Port Assignments
The Visual Studio Remote Debugger can run as an application or as a background service. When it runs as an application, it uses a port that is assigned by default as follows:
- Visual Studio 2019: 4024
Visual Studio 2017: 4022
Visual Studio 2015: 4020
Visual Studio 2013: 4018
Visual Studio 2012: 4016
In other words, the number of the port assigned to the remote debugger is incremented by 2 for each release. You can set a different port number of you like. We will explain how to set port numbers in a later section.
The Remote Debugger Port on 32-bit Operating Systems
TCP 4024 (in Visual Studio 2019) is the main port, and is required for all scenarios. You can configure this from either the command line or the remote debugger window.
TCP 4022 (in Visual Studio 2017) is the main port, and is required for all scenarios. You can configure this from either the command line or the remote debugger window.
In the remote debugger window, click Tools > Options, and set the TCP/IP port number.
On the command line, start the remote debugger with the /port switch: msvsmon /port <port number>.
You can find all the remote debugger command line switches in the remote debugging help (press F1 or click Help > Usage in the remote debugger window).
The Remote Debugger Port on 64-bit Operating Systems
When the 64-bit version of the remote debugger is started, it uses the main port (4024) by default. If you debug a 32-bit process, the 64-bit version of the remote debugger starts a 32-bit version of the remote debugger on port 4025 (the main port number incremented by 1). If you run the 32-bit remote debugger, it uses 4024, and 4025 is not used.
When the 64-bit version of the remote debugger is started, it uses the main port (4022) by default. If you debug a 32-bit process, the 64-bit version of the remote debugger starts a 32-bit version of the remote debugger on port 4023 (the main port number incremented by 1). If you run the 32-bit remote debugger, it uses 4022, and 4023 is not used.
This port is configurable from the command line: Msvsmon /wow64port <port number>.
The Discovery Port
UDP 3702 is used for finding running instances of the remote debugger on the network (for example, the Find dialog in the Attach to Process dialog). It is used only for discovering a machine running the remote debugger, so it is optional if you have some other way of knowing the machine name or IP address of the target computer. This is a standard port for discovery, so the port number cannot be configured.
If you do not want to enable discovery, you can start msvsmon from the command line with discovery disabled: Msvsmon /nodiscovery.
Remote Debugger Ports on Azure
The following ports are used by the remote debugger on Azure. The ports on the cloud service are mapped to the ports on the individual VM. All ports are TCP.
|Connection||Port on Cloud Service||Port on VM|
We'd love to hear your thoughts. Choose the type you'd like to provide:
Our feedback system is built on GitHub Issues. Read more on our blog.