summaryrefslogtreecommitdiff
path: root/src/debug/ee/ddunpack.h
diff options
context:
space:
mode:
authorEugene Zemtsov <Eugene.Zemtsov@microsoft.com>2015-02-16 21:58:15 -0800
committerEugene Zemtsov <Eugene.Zemtsov@microsoft.com>2015-03-03 14:39:55 -0800
commit1b6c5406b302c496320d6012dae1342c699c2290 (patch)
treeaaba609c18f194c68c861c6afc516218da3f424d /src/debug/ee/ddunpack.h
parente9f40ce78c9443819829870d94af0239adc16030 (diff)
downloadcoreclr-1b6c5406b302c496320d6012dae1342c699c2290.tar.gz
coreclr-1b6c5406b302c496320d6012dae1342c699c2290.tar.bz2
coreclr-1b6c5406b302c496320d6012dae1342c699c2290.zip
Pipe based communication between debugee and managed debugger on Linux
Goal of this change is to make managed debugging on Linux possible. (It is not fully achieved, but we're getting there) So far our provision for debugging on Linux is somewhat different from debugging on Windows. Instead of using WaitForDebugEvent and RaiseException as means of communication between debugger and debuggee, we're gonna use pipes. Thankfully from old times of Silverlight Mac debugging we had debugging via network sockets under ifdefs FEATURE_DBGIPC_TRANSPORT_DI and FEATURE_DBGIPC_TRANSPORT_VM. So this change is taking that old way of debugging, changing sockets for network pipes, removes lots of unused stuff and implements whatever is missing on Linux. Testing: Due to infrastructural issues I wasn't able to test debugging on Linux yet. So my testing consistent of 1. End to end net pipe debugging on Windows 2. Testing of twowaypipe implementation on Linux 3. Testing of search for loaded CoreCLR module on Linux.
Diffstat (limited to 'src/debug/ee/ddunpack.h')
-rw-r--r--src/debug/ee/ddunpack.h498
1 files changed, 0 insertions, 498 deletions
diff --git a/src/debug/ee/ddunpack.h b/src/debug/ee/ddunpack.h
deleted file mode 100644
index 23be521642..0000000000
--- a/src/debug/ee/ddunpack.h
+++ /dev/null
@@ -1,498 +0,0 @@
-//
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
-//
-
-// Unpacker
-//
-// Lives on EE side of the fence
-//
-// Note that this file is generated by ndp\clr\src\Debug\tools\BuildDDMarshal\.
-// Changes should be made to output\DDUnpack_template.h in that directory.
-//
-
-
-#ifndef _DDUNPACK_H_
-#define _DDUNPACK_H_
-
-#if defined(FEATURE_DBGIPC_TRANSPORT_VM)
-
-#include "ddmarshalutil.h"
-#include "ddshared.h"
-
-
-// This technique is now misnamed, but I am still using it to lower code churn.
-// When handing memory back and forth between DAC and DBI we use this (forDbi) new variant
-// to ensure that everything goes in the correct heap. In DBI it resolves to new, and in DAC
-// it resolves to calling into a special allocator that DBI passed over that ultimately also
-// calls DBI new. A few types such as DacDbiArrayList get included on both sides of the DLL
-// boundary and they assume there will be a (forDbi) new variant available to them.
-//
-// Now however we have a new in-proc consumer of DAC and again we need to pass memory blocks
-// to it. The most straightforward technique is to consume DAC exactly how DBI does, thus mimicing
-// DBI's new variant here so that all the types which straddle the boundary can continue using
-// it. At some point we might want to change the naming to something more general... 'forDacCaller'
-// perhaps. I don't consider the technique a workaround, just the naming is overly specific.
-
-#define forDbi (*(forDbiWorker *)NULL)
-
-// for dbi we just default to new, but we need to have these defined for both dac and dbi
-inline void * operator new(size_t lenBytes, const forDbiWorker &)
-{
- void * result = new BYTE[lenBytes];
- if (result == NULL)
- {
- ThrowOutOfMemory();
- }
- return result;
-}
-
-inline void * operator new[](size_t lenBytes, const forDbiWorker &)
-{
- void * result = new BYTE[lenBytes];
- if (result == NULL)
- {
- ThrowOutOfMemory();
- }
- return result;
-}
-
-// Helper to delete memory used with the IDacDbiInterface::IAllocator interface.
-template<class T> inline
-void DeleteDbiMemory(T *p)
-{
- delete p;
-}
-
-
-// Header for unpacking
-//
-class DDUnpack
- {
- protected:
- IDacDbiInterface * m_pReal;
- IDacDbiInterface::IAllocator * m_pAllocator;
- public:
- DDUnpack(IDacDbiInterface * pReal, IDacDbiInterface::IAllocator * pAllocator)
- {
- m_pReal = pReal;
- m_pAllocator = pAllocator;
- }
-
- // Main entry point
- // This will then delegate to the proper unpacking stubs.
- void HandleDDMessage(ReadBuffer * pSend, WriteBuffer * pResult);
-
-
- //
- // Stubs
- //
-
-//---------------------------------------------------------------------
-// Unpacking stubs
- // HRESULT CheckDbiVersion(const DbiVersion * pVersion)
- void Unpack_CheckDbiVersion(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void GetLocalInterfaceHashAndTimestamp(DWORD & hash1, DWORD & hash2, DWORD & hash3, DWORD & hash4, DWORD & timestamp1, DWORD & timestamp2)
- void Unpack_GetLocalInterfaceHashAndTimestamp(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void GetRemoteInterfaceHashAndTimestamp(DWORD & hash1, DWORD & hash2, DWORD & hash3, DWORD & hash4, DWORD & timestamp1, DWORD & timestamp2)
- void Unpack_GetRemoteInterfaceHashAndTimestamp(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // HRESULT FlushCache()
- void Unpack_FlushCache(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void DacSetTargetConsistencyChecks(bool fEnableAsserts)
- void Unpack_DacSetTargetConsistencyChecks(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void Destroy()
- void Unpack_Destroy(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // BOOL IsLeftSideInitialized()
- void Unpack_IsLeftSideInitialized(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // VMPTR_AppDomain GetAppDomainFromId(ULONG appdomainId)
- void Unpack_GetAppDomainFromId(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // ULONG GetAppDomainId(VMPTR_AppDomain vmAppDomain)
- void Unpack_GetAppDomainId(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // VMPTR_OBJECTHANDLE GetAppDomainObject(VMPTR_AppDomain vmAppDomain)
- void Unpack_GetAppDomainObject(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // BOOL IsDefaultDomain(VMPTR_AppDomain vmAppDomain)
- void Unpack_IsDefaultDomain(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void GetAssemblyFromDomainAssembly(VMPTR_DomainAssembly vmDomainAssembly, VMPTR_Assembly * vmAssembly)
- void Unpack_GetAssemblyFromDomainAssembly(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // BOOL IsAssemblyFullyTrusted(VMPTR_DomainAssembly vmDomainAssembly)
- void Unpack_IsAssemblyFullyTrusted(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void GetAppDomainFullName(VMPTR_AppDomain vmAppDomain, IStringHolder * pStrName)
- void Unpack_GetAppDomainFullName(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void GetModuleSimpleName(VMPTR_Module vmModule, IStringHolder * pStrFilename)
- void Unpack_GetModuleSimpleName(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // BOOL GetAssemblyPath(VMPTR_Assembly vmAssembly, IStringHolder * pStrFilename)
- void Unpack_GetAssemblyPath(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void ResolveTypeReference(const TypeRefData * pTypeRefInfo, TypeRefData * pTargetRefInfo)
- void Unpack_ResolveTypeReference(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // BOOL GetModulePath(VMPTR_Module vmModule, IStringHolder * pStrFilename)
- void Unpack_GetModulePath(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // BOOL GetModuleNGenPath(VMPTR_Module vmModule, IStringHolder * pStrFilename)
- void Unpack_GetModuleNGenPath(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void GetMetadata(VMPTR_Module vmModule, TargetBuffer * pTargetBuffer)
- void Unpack_GetMetadata(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void GetSymbolsBuffer(VMPTR_Module vmModule, TargetBuffer * pTargetBuffer, IDacDbiInterface::SymbolFormat * pSymbolFormat)
- void Unpack_GetSymbolsBuffer(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void GetModuleData(VMPTR_Module vmModule, ModuleInfo * pData)
- void Unpack_GetModuleData(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void GetDomainFileData(VMPTR_DomainFile vmDomainFile, DomainFileInfo * pData)
- void Unpack_GetDomainFileData(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void GetModuleForDomainFile(VMPTR_DomainFile vmDomainFile, VMPTR_Module * pModule)
- void Unpack_GetModuleForDomainFile(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // IDacDbiInterface::AddressType GetAddressType(CORDB_ADDRESS address)
- void Unpack_GetAddressType(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // BOOL IsTransitionStub(CORDB_ADDRESS address)
- void Unpack_IsTransitionStub(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void GetCompilerFlags(VMPTR_DomainFile vmDomainFile, BOOL * pfAllowJITOpts, BOOL * pfEnableEnC)
- void Unpack_GetCompilerFlags(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // HRESULT SetCompilerFlags(VMPTR_DomainFile vmDomainFile, BOOL fAllowJitOpts, BOOL fEnableEnC)
- void Unpack_SetCompilerFlags(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void EnumerateAppDomains(IDacDbiInterface::FP_APPDOMAIN_ENUMERATION_CALLBACK fpCallback, CALLBACK_DATA pUserData)
- void Unpack_EnumerateAppDomains(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void EnumerateAssembliesInAppDomain(VMPTR_AppDomain vmAppDomain, IDacDbiInterface::FP_ASSEMBLY_ENUMERATION_CALLBACK fpCallback, CALLBACK_DATA pUserData)
- void Unpack_EnumerateAssembliesInAppDomain(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void EnumerateModulesInAssembly(VMPTR_DomainAssembly vmAssembly, IDacDbiInterface::FP_MODULE_ENUMERATION_CALLBACK fpCallback, CALLBACK_DATA pUserData)
- void Unpack_EnumerateModulesInAssembly(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void RequestSyncAtEvent()
- void Unpack_RequestSyncAtEvent(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void MarkDebuggerAttachPending()
- void Unpack_MarkDebuggerAttachPending(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void MarkDebuggerAttached(BOOL fAttached)
- void Unpack_MarkDebuggerAttached(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void Hijack(VMPTR_Thread vmThread, ULONG32 dwThreadId, const EXCEPTION_RECORD * pRecord, T_CONTEXT * pOriginalContext, ULONG32 cbSizeContext, EHijackReason::EHijackReason reason, void * pUserData, CORDB_ADDRESS * pRemoteContextAddr)
- void Unpack_Hijack(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void EnumerateConnections(IDacDbiInterface::FP_CONNECTION_CALLBACK fpCallback, CALLBACK_DATA pUserData)
- void Unpack_EnumerateConnections(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void EnumerateThreads(IDacDbiInterface::FP_THREAD_ENUMERATION_CALLBACK fpCallback, CALLBACK_DATA pUserData)
- void Unpack_EnumerateThreads(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // bool IsThreadMarkedDead(VMPTR_Thread vmThread)
- void Unpack_IsThreadMarkedDead(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // HANDLE GetThreadHandle(VMPTR_Thread vmThread)
- void Unpack_GetThreadHandle(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // VMPTR_OBJECTHANDLE GetThreadObject(VMPTR_Thread vmThread)
- void Unpack_GetThreadObject(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void SetDebugState(VMPTR_Thread vmThread, CorDebugThreadState debugState)
- void Unpack_SetDebugState(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // BOOL HasUnhandledException(VMPTR_Thread vmThread)
- void Unpack_HasUnhandledException(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // CorDebugUserState GetUserState(VMPTR_Thread vmThread)
- void Unpack_GetUserState(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // CONNID GetConnectionID(VMPTR_Thread vmThread)
- void Unpack_GetConnectionID(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // TASKID GetTaskID(VMPTR_Thread vmThread)
- void Unpack_GetTaskID(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // DWORD TryGetVolatileOSThreadID(VMPTR_Thread vmThread)
- void Unpack_TryGetVolatileOSThreadID(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // DWORD GetUniqueThreadID(VMPTR_Thread vmThread)
- void Unpack_GetUniqueThreadID(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // VMPTR_OBJECTHANDLE GetCurrentException(VMPTR_Thread vmThread)
- void Unpack_GetCurrentException(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // VMPTR_OBJECTHANDLE GetCurrentCustomDebuggerNotification(VMPTR_Thread vmThread)
- void Unpack_GetCurrentCustomDebuggerNotification(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // VMPTR_AppDomain GetCurrentAppDomain(VMPTR_Thread vmThread)
- void Unpack_GetCurrentAppDomain(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // VMPTR_DomainAssembly ResolveAssembly(VMPTR_DomainFile vmScope, mdToken tkAssemblyRef)
- void Unpack_ResolveAssembly(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void GetNativeCodeSequencePointsAndVarInfo(VMPTR_MethodDesc vmMethodDesc, CORDB_ADDRESS startAddress, BOOL fCodeAvailabe, NativeVarData * pNativeVarData, SequencePoints * pSequencePoints)
- void Unpack_GetNativeCodeSequencePointsAndVarInfo(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // VMPTR_CONTEXT GetManagedStoppedContext(VMPTR_Thread vmThread)
- void Unpack_GetManagedStoppedContext(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void CreateStackWalk(VMPTR_Thread vmThread, DT_CONTEXT * pInternalContextBuffer, StackWalkHandle * ppSFIHandle)
- void Unpack_CreateStackWalk(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void DeleteStackWalk(StackWalkHandle ppSFIHandle)
- void Unpack_DeleteStackWalk(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void GetStackWalkCurrentContext(StackWalkHandle pSFIHandle, DT_CONTEXT * pContext)
- void Unpack_GetStackWalkCurrentContext(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void SetStackWalkCurrentContext(VMPTR_Thread vmThread, StackWalkHandle pSFIHandle, CorDebugSetContextFlag flag, DT_CONTEXT * pContext)
- void Unpack_SetStackWalkCurrentContext(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // BOOL UnwindStackWalkFrame(StackWalkHandle pSFIHandle)
- void Unpack_UnwindStackWalkFrame(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // HRESULT CheckContext(VMPTR_Thread vmThread, const DT_CONTEXT * pContext)
- void Unpack_CheckContext(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // IDacDbiInterface::FrameType GetStackWalkCurrentFrameInfo(StackWalkHandle pSFIHandle, DebuggerIPCE_STRData * pFrameData)
- void Unpack_GetStackWalkCurrentFrameInfo(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // ULONG32 GetCountOfInternalFrames(VMPTR_Thread vmThread)
- void Unpack_GetCountOfInternalFrames(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void EnumerateInternalFrames(VMPTR_Thread vmThread, IDacDbiInterface::FP_INTERNAL_FRAME_ENUMERATION_CALLBACK fpCallback, CALLBACK_DATA pUserData)
- void Unpack_EnumerateInternalFrames(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // BOOL IsMatchingParentFrame(FramePointer fpToCheck, FramePointer fpParent)
- void Unpack_IsMatchingParentFrame(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // ULONG32 GetStackParameterSize(CORDB_ADDRESS controlPC)
- void Unpack_GetStackParameterSize(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // FramePointer GetFramePointer(StackWalkHandle pSFIHandle)
- void Unpack_GetFramePointer(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // BOOL IsLeafFrame(VMPTR_Thread vmThread, const DT_CONTEXT * pContext)
- void Unpack_IsLeafFrame(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void GetContext(VMPTR_Thread vmThread, DT_CONTEXT * pContextBuffer)
- void Unpack_GetContext(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void ConvertContextToDebuggerRegDisplay(const DT_CONTEXT * pInContext, DebuggerREGDISPLAY * pOutDRD, BOOL fActive)
- void Unpack_ConvertContextToDebuggerRegDisplay(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // IDacDbiInterface::DynamicMethodType IsILStubOrLCGMethod(VMPTR_MethodDesc vmMethodDesc)
- void Unpack_IsILStubOrLCGMethod(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // TargetBuffer GetVarArgSig(CORDB_ADDRESS VASigCookieAddr, CORDB_ADDRESS * pArgBase)
- void Unpack_GetVarArgSig(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // BOOL RequiresAlign8(VMPTR_TypeHandle thExact)
- void Unpack_RequiresAlign8(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // GENERICS_TYPE_TOKEN ResolveExactGenericArgsToken(DWORD dwExactGenericArgsTokenIndex, GENERICS_TYPE_TOKEN rawToken)
- void Unpack_ResolveExactGenericArgsToken(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void GetILCodeAndSig(VMPTR_DomainFile vmDomainFile, mdToken functionToken, TargetBuffer * pCodeInfo, mdToken * pLocalSigToken)
- void Unpack_GetILCodeAndSig(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void GetNativeCodeInfo(VMPTR_DomainFile vmDomainFile, mdToken functionToken, NativeCodeFunctionData * pCodeInfo)
- void Unpack_GetNativeCodeInfo(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void GetNativeCodeInfoForAddr(VMPTR_MethodDesc vmMethodDesc, CORDB_ADDRESS hotCodeStartAddr, NativeCodeFunctionData * pCodeInfo)
- void Unpack_GetNativeCodeInfoForAddr(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void GetClassInfo(VMPTR_AppDomain vmAppDomain, VMPTR_Module vmModule, mdTypeDef metadataToken, VMPTR_TypeHandle thExact, VMPTR_TypeHandle thApprox, ClassInfo * pData)
- void Unpack_GetClassInfo(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void GetInstantiationFieldInfo(VMPTR_DomainFile vmDomainFile, mdTypeDef metadataToken, VMPTR_TypeHandle vmThExact, VMPTR_TypeHandle vmThApprox, DacDbiArrayList<FieldData> * pFieldList, SIZE_T * pObjectSize)
- void Unpack_GetInstantiationFieldInfo(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void TypeHandleToExpandedTypeInfo(AreValueTypesBoxed boxed, VMPTR_AppDomain vmAppDomain, VMPTR_TypeHandle vmTypeHandle, DebuggerIPCE_ExpandedTypeData * pTypeInfo)
- void Unpack_TypeHandleToExpandedTypeInfo(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void GetObjectExpandedTypeInfo(AreValueTypesBoxed boxed, VMPTR_AppDomain vmAppDomain, CORDB_ADDRESS addr, DebuggerIPCE_ExpandedTypeData * pTypeInfo)
- void Unpack_GetObjectExpandedTypeInfo(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void GetObjectExpandedTypeInfoFromID(AreValueTypesBoxed boxed, VMPTR_AppDomain vmAppDomain, COR_TYPEID id, DebuggerIPCE_ExpandedTypeData * pTypeInfo)
- void Unpack_GetObjectExpandedTypeInfoFromID(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // VMPTR_TypeHandle GetApproxTypeHandle(TypeInfoList * pTypeData)
- void Unpack_GetApproxTypeHandle(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // HRESULT GetExactTypeHandle(DebuggerIPCE_ExpandedTypeData * pTypeData, ArgInfoList * pArgInfo, VMPTR_TypeHandle & vmTypeHandle)
- void Unpack_GetExactTypeHandle(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void GetMethodDescParams(VMPTR_AppDomain vmAppDomain, VMPTR_MethodDesc vmMethodDesc, GENERICS_TYPE_TOKEN genericsToken, UINT32 * pcGenericClassTypeParams, TypeParamsList * pGenericTypeParams)
- void Unpack_GetMethodDescParams(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // CORDB_ADDRESS GetThreadOrContextStaticAddress(VMPTR_FieldDesc vmField, VMPTR_Thread vmRuntimeThread)
- void Unpack_GetThreadOrContextStaticAddress(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // CORDB_ADDRESS GetCollectibleTypeStaticAddress(VMPTR_FieldDesc vmField, VMPTR_AppDomain vmAppDomain)
- void Unpack_GetCollectibleTypeStaticAddress(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void GetEnCHangingFieldInfo(const EnCHangingFieldInfo * pEnCFieldInfo, FieldData * pFieldData, BOOL * pfStatic)
- void Unpack_GetEnCHangingFieldInfo(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void GetTypeHandleParams(VMPTR_AppDomain vmAppDomain, VMPTR_TypeHandle vmTypeHandle, TypeParamsList * pParams)
- void Unpack_GetTypeHandleParams(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void GetSimpleType(VMPTR_AppDomain vmAppDomain, CorElementType simpleType, mdTypeDef * pMetadataToken, VMPTR_Module * pVmModule, VMPTR_DomainFile * pVmDomainFile)
- void Unpack_GetSimpleType(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // BOOL IsExceptionObject(VMPTR_Object vmObject)
- void Unpack_IsExceptionObject(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void GetStackFramesFromException(VMPTR_Object vmObject, DacDbiArrayList<DacExceptionCallStackData> & dacStackFrames)
- void Unpack_GetStackFramesFromException(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // BOOL IsRcw(VMPTR_Object vmObject)
- void Unpack_IsRcw(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void GetRcwCachedInterfaceTypes(VMPTR_Object vmObject, VMPTR_AppDomain vmAppDomain, BOOL bIInspectableOnly, DacDbiArrayList<DebuggerIPCE_ExpandedTypeData> * pDacInterfaces)
- void Unpack_GetRcwCachedInterfaceTypes(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void GetRcwCachedInterfacePointers(VMPTR_Object vmObject, BOOL bIInspectableOnly, DacDbiArrayList<CORDB_ADDRESS> * pDacItfPtrs)
- void Unpack_GetRcwCachedInterfacePointers(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void GetCachedWinRTTypesForIIDs(VMPTR_AppDomain vmAppDomain, DacDbiArrayList<GUID> & iids, DacDbiArrayList<DebuggerIPCE_ExpandedTypeData> * pTypes)
- void Unpack_GetCachedWinRTTypesForIIDs(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void GetCachedWinRTTypes(VMPTR_AppDomain vmAppDomain, DacDbiArrayList<GUID> * piids, DacDbiArrayList<DebuggerIPCE_ExpandedTypeData> * pTypes)
- void Unpack_GetCachedWinRTTypes(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void GetTypedByRefInfo(CORDB_ADDRESS pTypedByRef, VMPTR_AppDomain vmAppDomain, DebuggerIPCE_ObjectData * pObjectData)
- void Unpack_GetTypedByRefInfo(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void GetStringData(CORDB_ADDRESS objectAddress, DebuggerIPCE_ObjectData * pObjectData)
- void Unpack_GetStringData(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void GetArrayData(CORDB_ADDRESS objectAddress, DebuggerIPCE_ObjectData * pObjectData)
- void Unpack_GetArrayData(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void GetBasicObjectInfo(CORDB_ADDRESS objectAddress, CorElementType type, VMPTR_AppDomain vmAppDomain, DebuggerIPCE_ObjectData * pObjectData)
- void Unpack_GetBasicObjectInfo(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void TestCrst(VMPTR_Crst vmCrst)
- void Unpack_TestCrst(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void TestRWLock(VMPTR_SimpleRWLock vmRWLock)
- void Unpack_TestRWLock(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // CORDB_ADDRESS GetDebuggerControlBlockAddress()
- void Unpack_GetDebuggerControlBlockAddress(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // VMPTR_Object GetObjectFromRefPtr(CORDB_ADDRESS ptr)
- void Unpack_GetObjectFromRefPtr(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // VMPTR_Object GetObject(CORDB_ADDRESS ptr)
- void Unpack_GetObject(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // HRESULT EnableNGENPolicy(CorDebugNGENPolicy ePolicy)
- void Unpack_EnableNGENPolicy(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // VMPTR_OBJECTHANDLE GetVmObjectHandle(CORDB_ADDRESS handleAddress)
- void Unpack_GetVmObjectHandle(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // BOOL IsVmObjectHandleValid(VMPTR_OBJECTHANDLE vmHandle)
- void Unpack_IsVmObjectHandleValid(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // HRESULT IsWinRTModule(VMPTR_Module vmModule, BOOL & isWinRT)
- void Unpack_IsWinRTModule(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // ULONG GetAppDomainIdFromVmObjectHandle(VMPTR_OBJECTHANDLE vmHandle)
- void Unpack_GetAppDomainIdFromVmObjectHandle(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // CORDB_ADDRESS GetHandleAddressFromVmHandle(VMPTR_OBJECTHANDLE vmHandle)
- void Unpack_GetHandleAddressFromVmHandle(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // TargetBuffer GetObjectContents(VMPTR_Object obj)
- void Unpack_GetObjectContents(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void EnumerateBlockingObjects(VMPTR_Thread vmThread, IDacDbiInterface::FP_BLOCKINGOBJECT_ENUMERATION_CALLBACK fpCallback, CALLBACK_DATA pUserData)
- void Unpack_EnumerateBlockingObjects(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // MonitorLockInfo GetThreadOwningMonitorLock(VMPTR_Object vmObject)
- void Unpack_GetThreadOwningMonitorLock(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void EnumerateMonitorEventWaitList(VMPTR_Object vmObject, IDacDbiInterface::FP_THREAD_ENUMERATION_CALLBACK fpCallback, CALLBACK_DATA pUserData)
- void Unpack_EnumerateMonitorEventWaitList(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // CLR_DEBUGGING_PROCESS_FLAGS GetAttachStateFlags()
- void Unpack_GetAttachStateFlags(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // bool GetMetaDataFileInfoFromPEFile(VMPTR_PEFile vmPEFile, DWORD & dwTimeStamp, DWORD & dwImageSize, bool & isNGEN, IStringHolder * pStrFilename)
- void Unpack_GetMetaDataFileInfoFromPEFile(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // bool GetILImageInfoFromNgenPEFile(VMPTR_PEFile vmPEFile, DWORD & dwTimeStamp, DWORD & dwSize, IStringHolder * pStrFilename)
- void Unpack_GetILImageInfoFromNgenPEFile(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // bool IsThreadSuspendedOrHijacked(VMPTR_Thread vmThread)
- void Unpack_IsThreadSuspendedOrHijacked(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // bool AreGCStructuresValid()
- void Unpack_AreGCStructuresValid(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // HRESULT CreateHeapWalk(HeapWalkHandle * pHandle)
- void Unpack_CreateHeapWalk(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void DeleteHeapWalk(HeapWalkHandle handle)
- void Unpack_DeleteHeapWalk(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // HRESULT WalkHeap(HeapWalkHandle handle, ULONG count, COR_HEAPOBJECT * objects, ULONG * pFetched)
- void Unpack_WalkHeap(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // HRESULT GetHeapSegments(DacDbiArrayList<COR_SEGMENT> * pSegments)
- void Unpack_GetHeapSegments(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // bool IsValidObject(CORDB_ADDRESS obj)
- void Unpack_IsValidObject(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // bool GetAppDomainForObject(CORDB_ADDRESS obj, VMPTR_AppDomain * pApp, VMPTR_Module * pModule, VMPTR_DomainFile * pDomainFile)
- void Unpack_GetAppDomainForObject(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // HRESULT CreateRefWalk(RefWalkHandle * pHandle, BOOL walkStacks, BOOL walkFQ, UINT32 handleWalkMask)
- void Unpack_CreateRefWalk(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void DeleteRefWalk(RefWalkHandle handle)
- void Unpack_DeleteRefWalk(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // HRESULT WalkRefs(RefWalkHandle handle, ULONG count, DacGcReference * refs, ULONG * pFetched)
- void Unpack_WalkRefs(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // HRESULT GetTypeID(CORDB_ADDRESS obj, COR_TYPEID * pType)
- void Unpack_GetTypeID(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // HRESULT GetObjectFields(COR_TYPEID id, ULONG32 celt, COR_FIELD * layout, ULONG32 * pceltFetched)
- void Unpack_GetObjectFields(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // HRESULT GetTypeLayout(COR_TYPEID id, COR_TYPE_LAYOUT * pLayout)
- void Unpack_GetTypeLayout(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // HRESULT GetArrayLayout(COR_TYPEID id, COR_ARRAY_LAYOUT * pLayout)
- void Unpack_GetArrayLayout(ReadBuffer * pSend, WriteBuffer * pResult);
-
- // void GetGCHeapInformation(COR_HEAPINFO * pHeapInfo)
- void Unpack_GetGCHeapInformation(ReadBuffer * pSend, WriteBuffer * pResult);
-
- };
-
-#endif // _DDUNPACK_H_
-
-#endif //FEATURE_DBGIPC_TRANSPORT_VM
-
-// end of file