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
PDB1API viaDiaDataSource.RawPDBPtr - TTD
ILiveRecordersupport. See WinDbg-Samples for more info - TTD
ReplayEngine/Cursorsupport. Replay TTD traces usingttdreplay!InitiateReplayEngineHandshake/ttdreplay!CreateReplayEngineWithHandshake, or intercept the internal objects used by DbgEng viaWinDbgExtensionAPI.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
DbgEngCommandExceptionforHRESULT.EVENT_E_INTERNALEXCEPTION - Lock extension properties on
DebugClientto protect against multiple threads trying to initialize properties and RCW leaks occurring - Add
ModelObjectextension properties - Fix
DiaSession.As<T>not supportingDiaEnumInputAssemblyFiles - Deprioritize
ICorDebugGenericValueinCorDebugValue.New, as many value types support this interface that aren't primitive - Add DbgEng debug service XmlDocs
Bugfixes
- Fix
CorDebugGenericValue.Valueincorrectly being a property instead of a method, and marshalling incorrectly - Fix DbgEng wrappers not releasing sub-interfaces on
Dispose
Breaking Changes
- Rename
DllGetClassObjectInterfaces.ClassFactory()toGetClassFactory() - Change
DEBUG_STATUSto an enum.longflags are now onDEBUG_STATUS_FLAGS