Skip to content

ClrDebug 0.3.4

Latest

Choose a tag to compare

@lordmilko lordmilko released this 25 Mar 10:10

ClrDebug 0.3.4 contains a variety of improvements, bug fixes and breaking changes, split across the following feature areas:

New Features

  • PDB1 support. Get at the underlying PDB1 API via DiaDataSource.RawPDBPtr
  • TTD ILiveRecorder support. See WinDbg-Samples for more info
  • TTD ReplayEngine / Cursor support. Replay TTD traces using ttdreplay!InitiateReplayEngineHandshake / ttdreplay!CreateReplayEngineWithHandshake, or intercept the internal objects used by DbgEng via WinDbgExtensionAPI.Ioctl().QueryTargetInterface(IID_IReplayEngine / IID_IReplayCursor)
    Add DbgEng service bridge interface types

Improvements

  • Add WinDbgExtensionAPI.QueryTargetInterface
  • Add ITypeLib.As<T> extension methods
  • Add DbgEng service GUIDs
  • Add DbgEngCommandException for HRESULT.EVENT_E_INTERNALEXCEPTION
  • Lock extension properties on DebugClient to protect against multiple threads trying to initialize properties and RCW leaks occurring
  • Add ModelObject extension properties
  • Fix DiaSession.As<T> not supporting DiaEnumInputAssemblyFiles
  • Deprioritize ICorDebugGenericValue in CorDebugValue.New, as many value types support this interface that aren't primitive
  • Add DbgEng debug service XmlDocs

Bugfixes

  • Fix CorDebugGenericValue.Value incorrectly being a property instead of a method, and marshalling incorrectly
  • Fix DbgEng wrappers not releasing sub-interfaces on Dispose

Breaking Changes

  • Rename DllGetClassObjectInterfaces.ClassFactory() to GetClassFactory()
  • Change DEBUG_STATUS to an enum. long flags are now on DEBUG_STATUS_FLAGS