繁体   English   中英

Visual Studio 2008调试器的问题

[英]Problem with Visual Studio 2008 Debugger

在我的一个项目中,Visual Studio 2008有一个奇怪的问题。 当我在一行代码上设置一个断点时,它会被点击,但是当我试图“跳过”,或者其他任何应该通过该断点并停在下一行的其他内容时,代码会被执行并继续,好像我击中了F5。 即使我在此之后的线上有另一个断点,也会发生这种情况,奇怪的是,第二个断点被忽略(有时)。

任何人,任何想法?

更新

这是一个示例代码。 但似乎在我尝试的任何地方......抛出异常的catch块,我有这个问题。

在下面的代码示例中,“return(T)bFormatter.Deserialize(mStream)”抛出异常。

public static T LoadEncryptedObject<T>(string location) where T : class
{
    if( string.IsNullOrEmpty(location) || !System.IO.File.Exists(location) )
        return default(T);

    System.IO.FileStream fs = null;
    try
    {
        fs = new System.IO.FileStream(location, System.IO.FileMode.Open,
            System.IO.FileAccess.Read, System.IO.FileShare.ReadWrite);
        BinaryFormatter bFormatter = new BinaryFormatter();

        byte[] encryptedBytes = new byte[fs.Length];
        fs.Read(encryptedBytes, 0, encryptedBytes.Length);
        MemoryStream mStream = new MemoryStream(Cryptography.Decrypt(encryptedBytes));

        return (T)bFormatter.Deserialize(mStream);
    }
    catch( SerializationException sx )
    {
        System.Diagnostics.Debug.WriteLine(sx.Message);
        return default(T);
    }
    finally
    {
        if( fs != null )
            fs.Close();
    }
}

VS2008的已知问题。 这里有补丁。

通常这可能是由于未被捕获的异常。 尝试捕获IDE中的所有异常。

在菜单栏上单击Debug-> Exceptions ...并选中Common Language Runtime Exceptions的“ Thrown ”复选框。

我的怀疑是,当你在断点处暂停时,另一个线程上会发生异常。 当您跨步时,异常优先,调试器跳转到该线程。

简单的解决方案是确保您只调试一个线程。

我有同样的问题。 这是因为我的应用程序正在使用另一个应用程序,即Dbmonitor来跟踪数据库事件,但我在调试时没有运行Dbmonitor。 因此,请检查是否添加任何代码以使用任何第三方应用程序。 这可能会帮助你:)

Cryptography.Decrypt围绕COM加密提供程序框架的包装器? 无论何时评估在COM中实现的内容,您都会遇到一些与您所描述的类似的异常线程问题。

很多时候帮助我的是关闭手表,汽车和本地窗口,然后小心不要鼠标悬停在任何东西上以避免触发调试器评估。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM