diff options
Diffstat (limited to 'src/debug/daccess/stdafx.h')
-rw-r--r-- | src/debug/daccess/stdafx.h | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/src/debug/daccess/stdafx.h b/src/debug/daccess/stdafx.h new file mode 100644 index 0000000000..5c2d37688b --- /dev/null +++ b/src/debug/daccess/stdafx.h @@ -0,0 +1,111 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. +//***************************************************************************** +// File: stdafx.h +// + +// +//***************************************************************************** +/* XXX Fri 10/14/2005 + * prevent winioctl from defining something called "Unknown" + */ +#define _WINIOCTL_ + +// Define ALLOW_VMPTR_ACCESS to grant DAC access to VMPTR +#define ALLOW_VMPTR_ACCESS + +// Prevent the inclusion of Random.h from disabling rand(). rand() is used by some other headers we include +// and there's no reason why DAC should be forbidden from using it. +#define DO_NOT_DISABLE_RAND + +#define USE_COM_CONTEXT_DEF + +#include <stdint.h> +#include <windows.h> + +#include <winwrap.h> + +#include <dbghelp.h> + +#include <wchar.h> +#include <stdio.h> + +#include <dbgtargetcontext.h> + +#include <cor.h> +#include <dacprivate.h> +#include <sospriv.h> + +#include <common.h> +#include <codeman.h> +#include <debugger.h> +#include <controller.h> +#include <eedbginterfaceimpl.h> +#include <methoditer.h> + +#include <xcordebug.h> +#include "dacimpl.h" + +#if defined(FEATURE_APPX_BINDER) +#include <clrprivbinderappx.h> +#endif // defined(FEATURE_APPX) + +#define STRSAFE_NO_DEPRECATE +#include <strsafe.h> +#undef _ftcscat +#undef _ftcscpy + +// from ntstatus.h +#define STATUS_STOWED_EXCEPTION ((NTSTATUS)0xC000027BL) + +// unpublished Windows structures. these will be published soon in a new header. +// copying here for now and we'll use the windows header when it's available. +// this is tracked with issue 824225 +#ifndef _STOWED_EXCEPTION_TEMP_DEFINITION +#define _STOWED_EXCEPTION_TEMP_DEFINITION + +typedef struct _STOWED_EXCEPTION_INFORMATION_HEADER { + ULONG Size; + ULONG Signature; +} STOWED_EXCEPTION_INFORMATION_HEADER, *PSTOWED_EXCEPTION_INFORMATION_HEADER; + +typedef struct _STOWED_EXCEPTION_INFORMATION_V2 { + STOWED_EXCEPTION_INFORMATION_HEADER Header; + + HRESULT ResultCode; + + struct { + DWORD ExceptionForm : 2; + DWORD ThreadId : 30; + }; + + union { + struct { + PVOID ExceptionAddress; + + ULONG StackTraceWordSize; // sizeof (PVOID) + ULONG StackTraceWords; // number of words pointed to by StackTrace + PVOID StackTrace; // StackTrace buffer + }; + struct { + PWSTR ErrorText; + }; + }; + + ULONG NestedExceptionType; + PVOID NestedException; // opaque exception addendum +} STOWED_EXCEPTION_INFORMATION_V2, *PSTOWED_EXCEPTION_INFORMATION_V2; + +// +// Nested exception: type definition macro (byte swap). Assumes little-endian. +// +#define STOWED_EXCEPTION_NESTED_TYPE(t) ((((((ULONG)(t)) >> 24) & 0xFF) << 0) | \ + (((((ULONG)(t)) >> 16) & 0xFF) << 8) | \ + (((((ULONG)(t)) >> 8) & 0xFF) << 16) | \ + (((((ULONG)(t)) >> 0) & 0xFF) << 24)) + +#define STOWED_EXCEPTION_INFORMATION_V2_SIGNATURE 'SE02' +#define STOWED_EXCEPTION_NESTED_TYPE_LEO STOWED_EXCEPTION_NESTED_TYPE('LEO1') // language exception object + +#endif // _STOWED_EXCEPTION_TEMP_DEFINITION |