Visual Studio 2015调试器损坏 - 这是一个错误还是仅仅是我?

时间:2015-08-09 06:48:18

标签: visual-studio-2015 visual-studio-debugging corruption

我疯了吗?我一直都能相信调试器吗?

事实证明,在与VS2015的调试会话期间,当我例如在立即窗口中更改变量的值时,该分配将导致"垃圾"分配的价值。它每次都是相同的垃圾值,但完全错误。

我已经将它提炼到最简单的控制台应用程序repro,以防万一你可能认为同意我对疯狂的自我评估,我还做了一个截图视频剪辑它出错了

你们是否也遇到了这个问题,或者这是一个本地机器问题?

以下是一个驱动器链接:

PS:我正在运行Windows 10 Enterprise x64,VS2015 Enterprise,其中包含适用于OS和VS的所有当前更新。底层硬件是现代硬件,我在VS2013下没有任何问题。

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>

    <script src="//ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script>
    <script src="//ajax.aspnetcdn.com/ajax/mvc/4.0/jquery.validate.unobtrusive.min.js"></script>
    <script type="text/javascript">
         $(function () {
        $("#sendContactForm").submit(function (e) {
            //get the action-url of the form
            var $form = $(e.target),
               formData = new FormData($('form').get(0));

            //prevent Default functionality
            e.preventDefault();
            if ($form.valid()) {
                $("#SendMessage").attr("disbled", true);
                $("#SendMessage").prop("value", "Sending...");
                $("#sending").css("display", "block");
                $("#MessagdSent").html("&nbsp;");

                //do your own request an handle the results
                $.ajax({
                    url: $form.attr('action'),
                    data: formData,
                    cache: false,
                    contentType: false,
                    processData: false,
                    type: 'POST',
                    success: function (result) {
                        successfulSend(result);
                        resetForm($form)
                    },
                    error: function (result) {
                        failedSend(result);
                    }
                });
            }               

            function resetForm(form) {
                form.find('input:text, input:password, input:file, select, textarea').val('');
            }

            //function that is called when the message is successfully sent
            function successfulSend(result) {
                //enable the send button
                $("#SendMessage").attr("disbled", false);

                //hide the sending gif
                $("#sending").css("display", "none");

                //change the text on the button back to Send
                $("#SendMessage").prop("value", "Send");

                //set focus to the from email address textbox
                $("#From").focus();

                $("#MessageSent").html(result.Message);
            }

            //call this function if for some reason the send fails
            function failedSend(result) {
                $("#SendMessage").attr("disbled", false);
                $("#sending").css("display", "none");
                $("#SendMessage").prop("value", "Send");
                $("#MessageSent").text(result.ErrorMessage);
            }
        });
    });
    </script>
}

我将开始为VS Connect问题整理相同内容。

编辑:我开始怀疑这对我来说是否只是一个问题,因为没有人确认这种情况也会发生。

编辑:连接问题已归档here

2 个答案:

答案 0 :(得分:4)

我可以在安装Visual Studio 2015时确认类似的情况 我也在Visual Studio 2013中运行了相同的代码(幸运的是,当我升级时,我没有卸载)并且它不会发生在那里:

v2013 vs 2015

所以是的,好像你刚刚发现了Visual Studio 2015中的一个错误(我的机器运行的是Windows 7 Pro,所以这不是Windows 10的问题)。不幸的是,我缺乏专业知识来评论你的心理健康,因此不要对这方面做出任何假设: - )

答案 1 :(得分:1)

这里有类似的问题。只需要一个类和目标.NET 3.5

public class DoSomething
{
    public void Makeit()
    {
    //  Set Breakpoint here
        SortedList<string, string> sortedList = new SortedList<string, string>();
        sortedList.Add("test", "1");
        sortedList.Add("test2", "2"); 
        //when breakpoint hits, uncomment the next line and press F5
        //sortedList.Add("test4", "5");
//Exception


class Program
{
    static void Main(string[] args)
    {
        TestLibrary.DoSomething bla = new TestLibrary.DoSomething();

        bla.Makeit();
    }
}

[animated explanation]