summaryrefslogtreecommitdiff
path: root/src/debug
diff options
context:
space:
mode:
authorMike McLaughlin <mikem@microsoft.com>2015-09-16 15:08:11 -0700
committerMike McLaughlin <mikem@microsoft.com>2015-09-17 17:23:52 -0700
commitcd8f7c437156a811d1003c2cd17da593c8f5e5da (patch)
tree64038d90c0cea4feae831d4c506e52838f7e33b9 /src/debug
parent8811dcdddbbde43e8286bfe29765fe4bd3ae328d (diff)
downloadcoreclr-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.cpp12
-rw-r--r--src/debug/daccess/datatargetadapter.h2
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