summaryrefslogtreecommitdiff
path: root/src/debug/di/shimcallback.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/debug/di/shimcallback.cpp')
-rw-r--r--src/debug/di/shimcallback.cpp30
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;
+}