为什么视觉工作室在调用函数时会迷失方向?

时间:2014-03-31 14:59:29

标签: debugging c#-4.0 visual-studio-2012 breakpoints

为标题道歉,但我甚至难以定义这里发生的事情。

我有一个带行

的程序
long svnSuccess = SVNCommands.GetSVNHeadRevNo(svnLocation);

SVNCommands是一个静态类。

如果我在上面的行上放置一个断点,然后F11(步入)来观察SVNCommands中代码的执行它只是......没有。行为就像一个无限循环。该计划不会以任何方式崩溃。它只是停止继续。 VS没有带我去SVNCommands.GetHSVNHeadRevNo。我甚至在该功能开始时都有断点(只是为了证明它没有在没有意识到的情况下到达那里)并且它们没有被触及。

关于这里可能发生什么的任何想法?

2 个答案:

答案 0 :(得分:0)

尝试在GetSVNHeadRevNo中添加System.Diagnostics.Debugger.Break()并运行该程序而不进行调试。它应该询问您是否要调试并希望命中代码。我不知道为什么你的调试器不工作。如果SVNCommands在一个与您的调试文件不匹配的程序集中,它会给您一个警告。

如果不起作用,请尝试删除Visual Studio Cache。据我所知,这解决了许多无法解释的问题。尝试使用How do you clear your Visual Studio cache on Windows Vista?

中的答案

答案 1 :(得分:0)

对我来说有点奇怪的修复 - 可能与其他人无关。

Dev机器是64位,但最终用户机器是32位。

这一般都很好,但我们只有32位SharpSVN dll。一切都按预期工作,直到我们跳入解决方案设置并将目标平台从“x86”更改为“任何CPU”。然后,在64位开发机器上进行测试,一进入该功能,目前看起来像这样:

public static long GetSVNHeadRevNo(string svnLocation)
    {
        using (SvnClient client = new SvnClient())
        {
            setupAuthentication(client);
            SvnInfoEventArgs info = null;
            Uri repos = new Uri(svnLocation);

            try
            {
                client.GetInfo(repos, out info);
            }
            catch (Exception ex)
            {
            }

            return info.Revision;
        }            
    }

我想程序试图吸入所需的DLL,然后(安静)适合。

将目标平台更改回x86已解决所有问题。感谢所有帮助过的人。