EventType clr20r3 - fatalerror - .NET运行时版本2.0.50727.3053 - 无法恢复的系统错误

时间:2011-08-04 10:08:21

标签: .net windows event-log fatal-error

在Windows XP计算机上运行WPF(.NET 3.5)应用程序超过12小时后,应用程序崩溃,出现两条EventLog错误消息。

第一个是 .NET Runtime版本2.0.50727.3053 - 无法恢复的系统错误。

和第二个 EventType clr20r3,P1 knxclientconsole.exe,P2 1.0.0.0,P3 4e3961fd,P4 windowsbase,P5 3.0.0.0,P6 488f1338,P7 da,P8 1b,P9 fatalerror,P10 NIL。

我的WPF应用程序是我构建的外部DLL模块的用户界面。 该外部模块是通过LAN网络进行通信的通信模块 将UDP套接字与外部设备配合使用。

使用ILDASM查找生成错误的位置后,我在代码中找到了生成错误但不够接近的行。

    public bool ON_Seg4
    {
        get
        {
            return _ON_Seg4;
        }
        set
        {
            if (_ON_Seg4 != value)
            {
                _ON_Seg4 = value;
                if (PropertyChanged != null)
                {
                    PropertyChanged(this, new PropertyChangedEventArgs("ON_Seg4"));
                }
            }
        }
    }

PropertyChanged(这是一个新的PropertyChangedEventArgs(“ON_Seg4”));

您可以看到在属性ON_Seg4的设置器中引发了异常。

使用IL8ASM使用P8参数(IL偏移量)我发现异常是从偏移量1b中提出的:

// 000151:if(PropertyChanged!= null)   IL_0016:/ * 02 | * / ldarg.0

IL_0017:/ * 7B | (04)00007C * / ldfld类[System / 23000002 /]System.ComponentModel.PropertyChangedEventHandler/01000013/ KNXClientConsole.Controls.Displays.SevenSegment / 02000010 / :: PropertyChanged / * 0400007C * /

IL_001c:/ * 14 | * / ldnull

IL_001d:/ * FE01 | * / ceq

IL_001f:/ * 0A | * / stloc.0

IL_0020:/ * 06 | * / ldloc.0

IL_0021:/ * 2D | 19 * / brtrue.s IL_003c

如果你看这一行,你会发现没有带偏移量1b的详细代码位置。 1b偏移量是PropertyChanged处理程序的最后一个字节。 我找不到OFFSET 1b。问题的原因在哪里或哪个更好?

IL_0017:/ * 7B | (04)00007C * / ldfld类[System / 23000002 /]System.ComponentModel.PropertyChangedEventHandler/01000013/ KNXClientConsole.Controls.Displays.SevenSegment / 02000010 / :: PropertyChanged / * 0400007C * /

错误是 fatalerror ,所以我没有足够的解释。

故事中有趣的部分是我有7个相似的属性(ON_Seg0 ... ON_Seg6),它们具有相同的代码,只有在ON_Seg4中才会发生异常。

这些属性用于模拟7段指示器的ON / OFF状态。这些属性绑定到XAML grafic对象。

XAML部分:

这是完整的故事,所以如果某人有某种解决方案或提示,请帮助我。

0 个答案:

没有答案