问题:
每当我尝试在调试器中断开或设置Trace-point时,我们的应用程序和visual studio都会完全冻结。在分离调试器后,应用程序继续。
此问题可能与WPF有关。我们已将WinForm应用程序迁移到WPF。从那以后出现这个问题。但我无法找到导致问题的代码的特定部分。我已经回滚了数百次提交但没有成功。
它也可能与UI线程有关。如果断点设置在远离UI逻辑的某个地方,那么应用程序将不会冻结,也不会像在UI线程中那样经常冻结。
[修改] 我在Visual Studio 2010中使用Windows 7. 64位
[更新
当Visual Studio挂起,并且在断点显示之前我尝试分离时,消息“无法从一个或多个进程分离。所有未完成的功能都未完成”。但是我已经在调试选项中禁用了所有func评估。 我认为我的问题是由无法完成的func_evaluation引起的,或者是因为超时而导致的。
有没有办法看到哪个func_evaluation视觉工作室挂了?
示例:
class SomeUiViewPresenterExample
{
private Timer m_Timer;
public void Init()
{
m_Timer = new Timer();
m_Timer.Elapsed += ElapsedFoo();
m_Timer.AutoReset = false;
m_Timer.Interval = 200;
}
private void ElapsedFoo(object sender, ElapsedEventArgs elapsedEventArgs)
{
// there is no code inside this method
// On the next line a trace point with "---> ElapsedFoo called" will freeze the debugger
}
我已经尝试过:(没有成功)
可能相关的问题:
因为我们的应用程序使用.NET Remoting与另一个进程通信,所以我的问题与here类似。我已将所有注册事项放在自己的任务中的远程事件中,但没有成功。
来自调试的visual studio的调试器输出:
我已将调试器附加到visual studio并观察到一些例外,(80010005)
但我不知道他们是否与我的问题相关:
(18d8.1708): C++ EH exception - code e06d7363 (first chance)
(18d8.1708): C++ EH exception - code e06d7363 (first chance)
..... // snip
(18d8.18dc): **Unknown exception - code 80010005 (first chance)
..... // 20 seconds freeze until breakpoint hit in IDE
(18d8.18dc): Unknown exception - code 80010005 (first chance)
(18d8.18dc): C++ EH exception - code e06d7363 (first chance)
ModLoad: 365f0000 36665000 C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Packages\Debugger\mcee.dll
// after continue execution debugger and debugged process freezes forever
(18d8.18dc): Unknown exception - code 80010005 (first chance)
ModLoad: 00000000`02b90000 00000000`02c1c000 C:\Windows\SysWOW64\UIAutomationCore.dll
(18d8.1a8c): CLR exception - code e0434352 (first chance)
(18d8.1a8c): CLR exception - code e0434352 (first chance)
(18d8.1a8c): CLR exception - code e0434352 (first chance)
(18d8.1a8c): CLR exception - code e0434352 (first chance)
(18d8.1a8c): CLR exception - code e0434352 (first chance)
(18d8.1a8c): CLR exception - code e0434352 (first chance)
(18d8.1a8c): CLR exception - code e0434352 (first chance)
(18d8.1a8c): CLR exception - code e0434352 (first chance)
感谢您提出任何想法或提示
曼努埃尔
答案 0 :(得分:1)
我越看这个,我怀疑它就越多,因为你没有使用WPF计时器。如果您尝试使用常规Timer类而不是WPF Dispatcher计时器,则存在尝试更新非ui线程上的UI的风险 - 这可能是您的问题的原因(因为DataContext是其中的一部分) UI技术上。)
更多信息:
DispatcherTimer vs a regular Timer in WPF app for a task scheduler
答案 1 :(得分:1)
您可以使用以下url中的windebug工具来更好地调试并对解决方案进行排序
http://msdn.microsoft.com/en-us/windows/hardware/gg463009.aspx
答案 2 :(得分:1)
感谢您的提示。最后我安装了VS 2012,调试器现在正常运行。在visual studio 2010调试器中似乎确实存在错误/性能问题。