Home All Groups Group Topic Archive Search About

Profiler API 2.0 bug?

Author
14 Mar 2006 3:04 PM
Mikhail Pilin
I call GetStaticFieldInfo(), GetAppDomainStaticAddress(),
GetThreadStaticAddress(), GetContextStaticAddress() methods during
GarbageCollectionFinished() notification. SetEventMask() has following flags
as arguments:
  COR_PRF_MONITOR_CLASS_LOADS
  COR_PRF_MONITOR_MODULE_LOADS
  COR_PRF_MONITOR_APPDOMAIN_LOADS
  COR_PRF_MONITOR_THREADS
  COR_PRF_MONITOR_GC
All work properly.

I decided to add COR_PRF_MONITOR_CODE_TRANSITIONS and/or
COR_PRF_MONITOR_ENTERLEAVE (Enter2/Leave2/Tailcall2 are empty: ret 16/ret
16/ret 12) flags. So, GetThreadStaticAddress() crashed, but all other
functions are continue to work properly.
Exception:
  Unhandled exception at 0x79e811f5 (mscorwks.dll) in devenv.exe:
0xC0000005: Access violation reading location 0x000003a0.
Stack trace:
  mscorwks.dll!MethodTable::GetDomainLocalModule()  + 0x33 bytes
  mscorwks.dll!MethodTable::IsClassInited()  + 0x14 bytes
  mscorwks.dll!ProfToEEInterfaceImpl::GetThreadStaticAddress()  + 0x8a bytes
  mscordbc.dll!CorProfInfo::GetThreadStaticAddress()  + 0x1e bytes
  ...
Reason to crash:
  _GetAppDomain() returns zero.

Could you help me to understand what happened?

Author
15 Mar 2006 8:33 AM
Mikhail Pilin
GetThreadStaticAddress() throw access violation exception ONLY for class System.Runtime.Remoting.Activation.ActivationServices fieldname _attributeStack.

For
class System.Windows.Forms.Application.ThreadContext fieldname currentThreadContext
class System.Windows.Forms.SynchronizationContext fieldname previousSyncContext
class System.Windows.Forms.Internal.DeviceContext fieldname activeDeviceContexts
  ...
no any problems are appeared.

AddThis Social Bookmark Button