diff options
author | Mike McLaughlin <mikem@microsoft.com> | 2015-12-03 16:24:46 -0800 |
---|---|---|
committer | Mike McLaughlin <mikem@microsoft.com> | 2015-12-07 14:38:29 -0800 |
commit | 25369d2f68b7cd0c10b518350edfdf3251be8d68 (patch) | |
tree | ef04481d7408a73c54373b2ef700d2b2f605fe6e /src/debug/di | |
parent | 9803ebe310d251a22499897a71fcda4407a2e468 (diff) | |
download | coreclr-25369d2f68b7cd0c10b518350edfdf3251be8d68.tar.gz coreclr-25369d2f68b7cd0c10b518350edfdf3251be8d68.tar.bz2 coreclr-25369d2f68b7cd0c10b518350edfdf3251be8d68.zip |
Add new IPC message for out of context unwinding used for HelperMethodFrames.
Diffstat (limited to 'src/debug/di')
-rw-r--r-- | src/debug/di/shimdatatarget.cpp | 15 | ||||
-rw-r--r-- | src/debug/di/shimdatatarget.h | 3 | ||||
-rw-r--r-- | src/debug/di/shimlocaldatatarget.cpp | 20 | ||||
-rw-r--r-- | src/debug/di/shimremotedatatarget.cpp | 16 |
4 files changed, 38 insertions, 16 deletions
diff --git a/src/debug/di/shimdatatarget.cpp b/src/debug/di/shimdatatarget.cpp index 8221a0582a..22eed159dd 100644 --- a/src/debug/di/shimdatatarget.cpp +++ b/src/debug/di/shimdatatarget.cpp @@ -80,21 +80,6 @@ DWORD ShimDataTarget::GetPid() } //--------------------------------------------------------------------------------------- -// -// Unwind the stack to the next frame. -// -// Return Value: -// context and contextPointers filled in with the next frame -// -HRESULT STDMETHODCALLTYPE ShimDataTarget::VirtualUnwind(DWORD threadId, ULONG32 contextSize, PBYTE context) -{ -#ifndef FEATURE_PAL - _ASSERTE(!"ShimDataTarget::VirtualUnwind NOT IMPLEMENTED"); -#endif - return E_NOTIMPL; -} - -//--------------------------------------------------------------------------------------- // Hook a custom function to handle ICorDebugMutableDataTarget::ContinueStatusChanged // // Arguments: diff --git a/src/debug/di/shimdatatarget.h b/src/debug/di/shimdatatarget.h index 145b30cde1..64da7e9ef5 100644 --- a/src/debug/di/shimdatatarget.h +++ b/src/debug/di/shimdatatarget.h @@ -90,7 +90,8 @@ public: // // Unwind to the next stack frame - virtual HRESULT STDMETHODCALLTYPE VirtualUnwind(DWORD threadId, ULONG32 contextSize, PBYTE context); + virtual HRESULT STDMETHODCALLTYPE VirtualUnwind( + DWORD threadId, ULONG32 contextSize, PBYTE context) = 0; protected: // Pid of the target process. diff --git a/src/debug/di/shimlocaldatatarget.cpp b/src/debug/di/shimlocaldatatarget.cpp index 9f3ba2ec1d..2a8c3aaa6d 100644 --- a/src/debug/di/shimlocaldatatarget.cpp +++ b/src/debug/di/shimlocaldatatarget.cpp @@ -67,6 +67,9 @@ public: DWORD dwThreadId, CORDB_CONTINUE_STATUS dwContinueStatus); + virtual HRESULT STDMETHODCALLTYPE VirtualUnwind( + DWORD threadId, ULONG32 contextSize, PBYTE context); + private: // Handle to the process. We own this. HANDLE m_hProcess; @@ -450,3 +453,20 @@ ShimLocalDataTarget::ContinueStatusChanged( } return E_NOTIMPL; } + +//--------------------------------------------------------------------------------------- +// +// Unwind the stack to the next frame. +// +// Return Value: +// context filled in with the next frame +// +HRESULT STDMETHODCALLTYPE +ShimLocalDataTarget::VirtualUnwind(DWORD threadId, ULONG32 contextSize, PBYTE context) +{ +#ifndef FEATURE_PAL + _ASSERTE(!"ShimLocalDataTarget::VirtualUnwind NOT IMPLEMENTED"); +#endif + return E_NOTIMPL; +} + diff --git a/src/debug/di/shimremotedatatarget.cpp b/src/debug/di/shimremotedatatarget.cpp index fd34d3317d..08874c5b41 100644 --- a/src/debug/di/shimremotedatatarget.cpp +++ b/src/debug/di/shimremotedatatarget.cpp @@ -64,6 +64,9 @@ public: DWORD dwThreadId, CORDB_CONTINUE_STATUS dwContinueStatus); + virtual HRESULT STDMETHODCALLTYPE VirtualUnwind( + DWORD threadId, ULONG32 contextSize, PBYTE context); + private: DbgTransportTarget * m_pProxy; DbgTransportSession * m_pTransport; @@ -332,3 +335,16 @@ ShimRemoteDataTarget::ContinueStatusChanged( } return E_NOTIMPL; } + +//--------------------------------------------------------------------------------------- +// +// Unwind the stack to the next frame. +// +// Return Value: +// context filled in with the next frame +// +HRESULT STDMETHODCALLTYPE +ShimRemoteDataTarget::VirtualUnwind(DWORD threadId, ULONG32 contextSize, PBYTE context) +{ + return m_pTransport->VirtualUnwind(threadId, contextSize, context); +}
\ No newline at end of file |