c# - Visual Studio 2010 卡在跟踪点上

标签 c# wpf visual-studio debugging

问题:
每当我尝试在调试器中中断或设置跟踪点时,我们的应用程序和 visual studio 都会完全卡住。分离调试器后,应用程序继续。

这个问题可能与 WPF 有关。我们已将 WinForm 应用程序迁移到 WPF。此后出现此问题。但是我找不到导致问题的代码的特定部分。我已经回滚了数百次提交但没有成功。

它也可能与 UI 线程有关。如果断点设置在远离 UI 逻辑的某处,应用程序将不会卡住,或者不会像在 UI 线程中的某处那样经常卡住。

[编辑:]
我使用 Windows 7。64 位和 Visual Studio 2010

[更新:]
当 Visual Studio 挂起时,我尝试在显示断点之前分离,消息“无法从一个或多个进程分离。所有未完成的函数评估尚未完成”。但是我在调​​试选项中禁用了所有功能评估。 我认为我的问题是由无法完成或超时的 func_evaluation 引起的。

有没有办法查看卡在哪个 func_evaluation visual studio 上?

示例:

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
}

我已经尝试过的:(没有成功)

  • 启用/禁用主机进程
  • 尝试调试 x86 和 x64 进程
  • 使用/SafeMode 启动了 visual studio
  • NGEN 更新
  • 在调试选项中禁用“属性评估和其他隐式函数调用”
  • 禁用符号服务器
  • 禁用符号加载
  • 已删除 WPF 字体缓存
  • 用 'DebuggerDisplay("some text without expression")' 标记了几个 UI 元素

( Ticket Microsoft Connect )

可能相关的问题:

因为我们的应用程序使用 .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)

最佳答案

我看得越多,就越怀疑这是因为您没有使用 WPF 计时器。如果您尝试使用常规 Timer 类而不是 WPF Dispatcher 计时器,您将冒着尝试在非 ui 线程上更新 UI 的风险——这可能是导致问题的原因(因为 DataContext 是技术上的 UI)。

更多信息在这里:

DispatcherTimer vs a regular Timer in WPF app for a task scheduler

关于c# - Visual Studio 2010 卡在跟踪点上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14755342/

相关文章:

java - 非方阵中的对角线

C#。 NPOI 2.0 将 xlsx 日期单元格导入 DataTable

c# - 父控件ScrollViewer滚动而不是子控件ScrollViewer

c++ - Visual C++ 预编译头错误

visual-studio - 很棒的 Visual Studio 宏

c# - WebAPI 自托管 : Can't bind multiple parameters to the request's content

c# - 单击其他单元格时如何获取文本框中gridview的单元格值?

c# - WPF 经典 Windows 应用程序作为 Windows 10 专业版上的自定义 Shell 时出现屏幕键盘问题

c# - 如何在 WPF 数据网格中添加页脚行?

c# - 调试在启动时崩溃的 C# 可执行文件