diff options
Diffstat (limited to 'src/debug/di/shimcallback.cpp')
-rw-r--r-- | src/debug/di/shimcallback.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/debug/di/shimcallback.cpp b/src/debug/di/shimcallback.cpp index 05fea352e3..078643f26d 100644 --- a/src/debug/di/shimcallback.cpp +++ b/src/debug/di/shimcallback.cpp @@ -1379,6 +1379,36 @@ HRESULT ShimProxyCallback::AfterGarbageCollection(ICorDebugProcess* pProcess) return S_OK; } +// Implementation of ICorDebugManagedCallback4::DataBreakpoint +// Arguments: +// input: +// pProcess - process in which the notification occurred +// Return value: S_OK +HRESULT ShimProxyCallback::DataBreakpoint(ICorDebugProcess* pProcess) +{ + m_pShim->PreDispatchEvent(); + class DataBreakpointEvent : public ManagedEvent + { + // callbacks parameters. These are strong references + RSExtSmartPtr<ICorDebugProcess > m_pProcess; + + public: + // Ctor + DataBreakpointEvent(ICorDebugProcess* pProcess) : + ManagedEvent() + { + this->m_pProcess.Assign(pProcess); + } + + HRESULT Dispatch(DispatchArgs args) + { + return args.GetCallback4()->DataBreakpoint(m_pProcess); + } + }; // end class AfterGarbageCollectionEvent + + m_pShim->GetManagedEventQueue()->QueueEvent(new DataBreakpointEvent(pProcess)); + return S_OK; +} |