ban*_*ana 30 debugging visual-studio-2012
最近我开始研究VS2012.
当我调试我的代码(这是一个SharePoint 2013应用程序)并试图获取变量的值时 - 我一次又一次地得到消息:
Function evaluation disabled because a previous function evaluation timed out.
You must continue execution to reenable function evaluation.
Run Code Online (Sandbox Code Playgroud)
我之前曾在visual studio 2010(适用于SharePoint 2010应用程序)工作过,并且在尝试获取Quick Watch中的变量值时几乎从未收到此消息.
我用Google搜索了错误消息,我发现当尝试获取其动作需要很长时间的函数值时会出现问题,但我并不是想获取函数的值,只是变量,但是我得到了这个错误.
我并不总是在相同的变量上得到错误,而是随机 - 每次都有不同的变量.
是否还有其他人在VS2012中遇到此问题?
我怎么能摆脱它呢?
Abd*_*man 23
Pierre Fourgeaud很好地回答了你的问题.我从Hans Passant那里补充了一些内容:
调试器在进程内运行的单独工作线程上执行监视表达式.调试器使用5秒,然后声明监视表达式不可用并显示"函数评估超时".然后调试器变得脾气暴躁,不是很多对于被阻塞的线程,您通常会看到"功能评估被禁用,因为之前的功能评估已超时.您必须继续执行以重新启用功能评估." 哪个好建议.
为什么会这样?
看起来这种错误只是当你试图观察一些必须是线程安全的变量但有时这个框架实现并不完美时才会发生....
要避免此问题:当单步执行变量绑定到窗口或其他控件的代码时,不显示局部变量或"自动"变量.只有在确定您的变量可以安全查看时,才能查看这些内容.请注意,错误不一定出现在不安全的变量上.在危险代码中操作时,在安全(即非控制)变量上使用"立即"窗口.
数据访问器应始终是线程安全的.但有时在两个实现之间(让我们说在Sharepoint 2010和Sharepoint 2012之间或两个版本的.NET框架之间),这个规则有时候并不属实......在VS2003和2005之间有一些例子......
如何增加超时?
您可以通过更改注册表项的值增加超时HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\Debugger使用RegEdit.
不要忘记在更改注册表项后重新启动Visual Studio.
| 归档时间: |
|
| 查看次数: |
44556 次 |
| 最近记录: |