diff options
author | Mike McLaughlin <mikem@microsoft.com> | 2015-09-16 15:08:11 -0700 |
---|---|---|
committer | Mike McLaughlin <mikem@microsoft.com> | 2015-09-17 17:23:52 -0700 |
commit | cd8f7c437156a811d1003c2cd17da593c8f5e5da (patch) | |
tree | 64038d90c0cea4feae831d4c506e52838f7e33b9 /src/debug | |
parent | 8811dcdddbbde43e8286bfe29765fe4bd3ae328d (diff) | |
download | coreclr-cd8f7c437156a811d1003c2cd17da593c8f5e5da.tar.gz coreclr-cd8f7c437156a811d1003c2cd17da593c8f5e5da.tar.bz2 coreclr-cd8f7c437156a811d1003c2cd17da593c8f5e5da.zip |
Add ICorDebugDataTarget4 to SOS.
Now that Eugene fixed out of context unwinding in the DAC for Linux after
this change, the SOS "clrstack" command should always work and not hang anymore.
Diffstat (limited to 'src/debug')
-rw-r--r-- | src/debug/daccess/datatargetadapter.cpp | 12 | ||||
-rw-r--r-- | src/debug/daccess/datatargetadapter.h | 2 |
2 files changed, 7 insertions, 7 deletions
diff --git a/src/debug/daccess/datatargetadapter.cpp b/src/debug/daccess/datatargetadapter.cpp index 902b7dab13..57d990a4fe 100644 --- a/src/debug/daccess/datatargetadapter.cpp +++ b/src/debug/daccess/datatargetadapter.cpp @@ -45,18 +45,18 @@ DataTargetAdapter::~DataTargetAdapter() // Standard impl of IUnknown::QueryInterface HRESULT STDMETHODCALLTYPE DataTargetAdapter::QueryInterface( - REFIID InterfaceId, + REFIID interfaceId, PVOID* pInterface) { - if (InterfaceId == IID_IUnknown) + if (interfaceId == IID_IUnknown) { *pInterface = static_cast<IUnknown *>(static_cast<ICorDebugDataTarget *>(this)); } - else if (InterfaceId == IID_ICorDebugDataTarget) + else if (interfaceId == IID_ICorDebugDataTarget) { *pInterface = static_cast<ICorDebugDataTarget *>(this); } - else if (InterfaceId == IID_ICorDebugMutableDataTarget) + else if (interfaceId == IID_ICorDebugMutableDataTarget) { // Note that we always implement the mutable interface, even though our underlying target // may return E_NOTIMPL for all the functions on this interface. There is no reliable way @@ -65,8 +65,8 @@ DataTargetAdapter::QueryInterface( } else { - *pInterface = NULL; - return E_NOINTERFACE; + // For ICorDebugDataTarget4 and other interfaces directly implemented by the legacy data target. + return m_pLegacyTarget->QueryInterface(interfaceId, pInterface); } AddRef(); diff --git a/src/debug/daccess/datatargetadapter.h b/src/debug/daccess/datatargetadapter.h index 00289b7d47..30f097f0f6 100644 --- a/src/debug/daccess/datatargetadapter.h +++ b/src/debug/daccess/datatargetadapter.h @@ -25,7 +25,7 @@ interface ICLRDataTarget; * for dbgeng (watson, windbg, etc.) and for any other 3rd parties since * it is a documented API for dump generation. */ -class DataTargetAdapter : public ICorDebugMutableDataTarget +class DataTargetAdapter : public ICorDebugMutableDataTarget { public: // Create an adapter over the supplied legacy data target interface |