Visual Studio IDE

Announcement: This forum has been migrated to provide our customers one convenient and responsive system for all feedback. You can now suggest new ideas, browse and vote on existing ideas in the Visual Studio Developer Community. To learn more about the migration to Visual Studio Developer Community please check out the release blog post.

We’d like your suggestions and ideas to help us continuously improve future releases of Visual Studio, so we’ve partnered with UserVoice, a third-party service, to collect your feedback. Please do not send any novel or patentable ideas, copyrighted materials, samples or demos for which you do not want to grant a license to Microsoft.

This site is for feature suggestions; if you need to file a bug, you can visit our Developer Community website to get started.

Note: your use of the portal and your submission is subject to the UserVoice Terms of Service & Privacy Policy and license terms.

We look forward to hearing from you!
- The Visual Studio Team

I suggest you ...

You've used all your votes and won't be able to post a new idea, but you can still search and comment on existing ideas.

There are two ways to get more votes:

  • When an admin closes an idea you've voted on, you'll get your votes back from that idea.
  • You can remove your votes from an open idea you support.
  • To see ideas you have already voted on, select the "My feedback" filter and select "My open ideas".
(thinking…)

Enter your idea and we'll search to see if someone has already suggested it.

If a similar idea already exists, you can support and comment on it.

If it doesn't exist, you can post your idea so others can support it.

Enter your idea and we'll search to see if someone has already suggested it.

  • Hot ideas
  • Top ideas
  • New ideas
  • My feedback
  1. 18 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Debugging and Diagnostics  ·  Flag idea as inappropriate…  ·  Admin →
  2. When you remove a breakpoint while debugging, it stays removed.

    Many times while debugging a developer will find a breakpoint they don't want, and they'll remove it. Minutes later while debugging again, they'll be faced with the same breakpoint, and they'll, in frustration, remove it again, only for it to be back!?

    Yes, we can remove the breakpoint once we're done debugging, but sometimes those files aren't open anymore because the debugger took us to other code files.

    There needs to be a way to kill a breakpoint, while debugging, that removes it fully. Full stop.

    18 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Debugging and Diagnostics  ·  Flag idea as inappropriate…  ·  Admin →
  3. Disable Framework optimization when Debugging through the Framework

    It is now relatively easy to step through .NET Runtime framework code by turning off 'Just My Code' and enabling Microsoft symbol servers. However the code that you are stepping through is OPTIMIZED and thus the debugging experience is often bad.

    This does not have to be. As explained here

    https://blogs.msdn.microsoft.com/vancem/2017/12/20/update-debugging-through-the-net-core-framework-v2-0-3-windows/

    You can set an environment variable COMPLUS_ZapDisable (which forces JIT compilation of the framework) and then also set the Visual Studio 'Supress JIT Optimization' you force THAT PROCESS to run with non-optimized framework code.

    This is pretty valuable, but getting there requires a multi-step process and knowledge that many…

    17 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Debugging and Diagnostics  ·  Flag idea as inappropriate…  ·  Admin →
  4. Download debugger symbol files in parallel

    Visual Studio should start symbol files downloads in parallel. This will make it faster to start debugging because the current download of files in serial is extremely long.

    Visual Studio should also download debug symbols in background before debugging so the debugger can start faster.

    16 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Debugging and Diagnostics  ·  Flag idea as inappropriate…  ·  Admin →
  5. Intellitrace - disable ado.net diagnostic events to improve slow debugging or optimize

    Case:
    * "enable diagnostic tools" is checked in debug options
    * generates a lot of sql/ado.net inserts
    Result:
    * Application is very slow while debugging
    * Inserts are 100+ times slower
    Temp solution:
    * disable option, or attach debugger after inserts

    Request:
    * Give the option to exclude some events (filtering does not give any difference)
    * Or review the diagnostics for ado.net events

    16 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Debugging and Diagnostics  ·  Flag idea as inappropriate…  ·  Admin →
  6. 16 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Debugging and Diagnostics  ·  Flag idea as inappropriate…  ·  Admin →
  7. xamarin docker hyper-v

    On Windows 10 and current Visual Studio 2017 15.2 and 15.3 preview tooling there is no single machine supported workflow for developing and debugging apps that target Docker-based services projects and Xamarin client projects concurrently. That is to say, Docker services must exist in Hyper-V, and Xamarin clients if Android-based, must run in HAXM emulators for Nougat and later, since the Hyper-V based emulators have sadly been deprecated. Please bring back and make current the Hyper-V emulators for Android, or allow Hyper-V to coexist with HAXM VMs... somehow.

    15 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Debugging and Diagnostics  ·  Flag idea as inappropriate…  ·  Admin →
  8. Support of parsing DWARF

    Support of parsing DWARF information directly, rather than using DWARF-to-PDB scripts. Very helpful when debugging binaries produced with any kinds of MinGW compilers

    14 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Debugging and Diagnostics  ·  Flag idea as inappropriate…  ·  Admin →
  9. Make changing command line simple

    Changing command line option needs me to open project properties and set command line using interaction with mouse.
    I deal with app which uses command line heavily.
    It would be great to have immediate/command window shortcut to change command/command line we want to use for debugging.

    14 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Debugging and Diagnostics  ·  Flag idea as inappropriate…  ·  Admin →
  10. Allow profiler instrumentation to work on service fabric applications

    The profiling tools in Visual Studio have not been updated to work with Service Fabric projects. This, makes it difficult to improve performance of Service Fabric applications.

    Even though you can attach the profiler, you can't start the application with the profiler attached and also instrumentation is not supported.

    Service Fabric should be treated as a first class citizen to allow developers to create great applications for Azure.

    14 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Debugging and Diagnostics  ·  Flag idea as inappropriate…  ·  Admin →
  11. Calculate Max of Cyclomatic Complexity(CC) metric in Code Metrics Analysis, not only Total of them

    Hello,

    Today, VS "Code Metrics" functionality provides us metrics of Cyclomatics Complexity(CC).
    But CC in [Type],[Namespace] or [Project] scopes is displayed as Total(Sum) of CC in children scope.

    For example, CC of [Type(class)] is calculated as sum of its method's.
    (See, attached image1)
    Using "Sum of CC" is little bit difficult when you are trying to detect that which method has biggest CC at a glance.

    So, I would be appreciated if you could provide "Max of CC" metric, not only Total of CC.
    (See, attached image2)

    And if possible, "number of method" metric would be useful in order to…

    13 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Debugging and Diagnostics  ·  Flag idea as inappropriate…  ·  Admin →
  12. Enable step-through debugging in fluent method chains

    Fluent syntax is becoming a bigger and bigger part of C# with every release (LINQ and expression-bodied members being two prime examples). However, the debugging experience for fluent syntax is absolutely terrible. If I have a method chain like this

    var result = mySource
    .Foo(x, y)
    .Bar(z)
    .Baz();

    and I need to examine the intermediate result of Foo that is passed to Bar while debugging, I must refactor my code into a more imperative syntax:

    var temp1 = mySource.Foo(x, y);
    var temp2 = temp1.Bar(z);
    var result = temp2.Baz();

    The same applies to expression-bodied members, which must be converted back to…

    13 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Debugging and Diagnostics  ·  Flag idea as inappropriate…  ·  Admin →
  13. Add a "Step into outermost" to the Visual Studio debugger

    While debugging, a single line of code may contain multiple function calls, but usually, when you "step into", you want to step in the outermost call. For example:

    obj->getA()->getB()->Compute( x.getId(), returnStuff() );

    In the code above, 9 times out of 10, you want to step into Compute(). This is what "step into outermost" would do, with a nice default shortcut like Shift-F10.

    Current alternatives:
    - Step into specific : going through the right-click menu is quite cumbersome, and finding the correct function is not immediate
    - Alt + Shift + F11: default keyboard shortcut to "step into specific". This is…

    13 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Debugging and Diagnostics  ·  Flag idea as inappropriate…  ·  Admin →
  14. Feature to skip past current exception when Break When Thrown is on

    When Break When Thrown is on and an error occurs in a complex application, it can take multiple, sometimes even a dozen or more "Continue" actions before the current exception has fully run its course. As a result, I find myself turning on and off Break When Thrown, but that sometimes results in missing the "next" exception.

    I want an option that lets me skip past breaking on all re-raisings of the current exception, but doesn't turn off breaking on that exception class, or even later re-raisings of the same error.

    13 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Debugging and Diagnostics  ·  Flag idea as inappropriate…  ·  Admin →
  15. Improve visualizer API

    The current API for writing custom visualizers is horrible. You have to apply an attribute for the visualizer to the type you want to visualize, meaning that you cannot write custom visualizers for anything in the BCL or 3rd party libraries.

    As a result, there's not a single normal visualizer available as an extension in the Visual Studio gallery. If that's not a sign of failure for this extension point, I don't know what is.

    Custom visualizers should declare what types they can work on themselves. This would be far, far more powerful in allowing the community to build visualizers…

    13 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Debugging and Diagnostics  ·  Flag idea as inappropriate…  ·  Admin →
  16. Support for function call in natvis

    Hi,

    I have a question if natvis visualizator will be extended to support function call?
    For example I have a class:
    `class A {
    const char* describe() const;
    };`

    And I would like to in debugger be able to see result of describe();
    Somethink like:

    <?xml version="1.0" encoding="utf-8"?>
    <AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">

    <Type Name="A">
    <DisplayString>{{ data={this->describe()} }}</DisplayString>
    </Type>

    </AutoVisualizer>

    13 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    2 comments  ·  Debugging and Diagnostics  ·  Flag idea as inappropriate…  ·  Admin →
  17. Allow a thrown C++ exception to be inspected.

    When the Exception Helper appears for an exception thrown in C++, it would be very useful to be able to inspect that exception object.

    This would allow, for example, the what() message in a std::exception to be viewed. Ideally, inspection should respect the natvis rules, so that user defined exceptions can be displayed as intended inside the Exception Helper.

    Even just adding the exception object to the Autos window would help immensely.

    Currently we need to do this manually by finding the address of the exception object, it's type, and then adding a pointer cast to the Watch window.

    13 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    1 comment  ·  Debugging and Diagnostics  ·  Flag idea as inappropriate…  ·  Admin →
  18. Provide multiple debug channel output windows

    Like the Sony Playstation used to do (or still does?) with the TTY channels, it would be great to be able to specify an output stream / channel for debug / diagnostic text so each channel appears in it's own output window. I do this in engine already, but it would be great to be able to view the channels externally within Visual Studio as well

    12 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Debugging and Diagnostics  ·  Flag idea as inappropriate…  ·  Admin →
  19. IntelliTrace to allow recording values of complex data types

    IntelliTrace currently only records first level of primitive types for any complex data types. However, in many cases it leaves lot to guess. I understand that recording all that data can put lot of overhead but in some situations that data is absolutely needed and I'll be ok to take cost of that overhead and get the data to solve a critical field issue

    12 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Debugging and Diagnostics  ·  Flag idea as inappropriate…  ·  Admin →
  20. Edit and continue should work for handled Exceptions too

    Hi!

    Visual Studio provides great debugging experience for exceptions not handled by user code. You're stopped at the call where exception occurred and can fix the code, set next statement to the fixed code and all just works (does not if you've disabled auto stack unwind but that's not our case).

    However, if the exception is handled somewhere down the stack (e.g. with exception handler for logging and rethrow) the debugging becomes much more trickier. You can break on handled exception (if set in Exceptions window) but cannot unwind the stack and cannot fix the code.

    My proposal is: to…

    12 votes
    Vote
    Sign in
    (thinking…)
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    0 comments  ·  Debugging and Diagnostics  ·  Flag idea as inappropriate…  ·  Admin →

Feedback and Knowledge Base