代表的目标如何成为代表本身?

时间:2014-09-16 14:03:49

标签: .net clr

研究崩溃转储,我遇到了一个完美的死胡同。 target字段指向自己的代理。

0:000> !do 00000027ce9395f8
Name:        System.EventHandler
MethodTable: 000007fb86cd5268
EEClass:     000007fb86ce2040
Size:        64(0x40) bytes
File:        ...mscorlib.dll
Fields:
              MT    Field   Offset                 Type VT     Attr            Value Name
000007fb867e5fa0  400002d        8        System.Object  0 instance 00000027ce9395f8 _target
000007fb867e5fa0  400002e       10        System.Object  0 instance 0000000000000000 _methodBase
000007fb86832290  400002f       18        System.IntPtr  1 instance       1ff71a0ae0 _methodPtr
000007fb86832290  4000030       20        System.IntPtr  1 instance      7fc24f737a8 _methodPtrAux
000007fb867e5fa0  4000031       28        System.Object  0 instance 0000000000000000 _invocationList
000007fb86832290  4000032       30        System.IntPtr  1 instance                0 _invocationCount

我认为没有任何重大错误。在_methodptr之后,我找到了静态方法。

为什么_target不为空呢?这种行为的逻辑是什么?

0 个答案:

没有答案