// Do not edit this file. It's generated from corerror.xml automatically
#include "errormessage.h"

namespace netcoredbg
{

#define CASE_OF(CODE, STRERROR) case CODE: str=STRERROR; break;

const char *errormessage(HRESULT hresult)
{
    const char *str;

    switch (hresult)
    {
// From (winerror.h/palrt.h)
        CASE_OF(S_OK, "S_OK");
        CASE_OF(S_FALSE, "S_FALSE");
        CASE_OF(E_NOTIMPL, "E_NOTIMPL");
        CASE_OF(E_UNEXPECTED, "E_UNEXPECTED");
        CASE_OF(E_HANDLE, "E_HANDLE");
        CASE_OF(E_ABORT, "E_ABORT");
        CASE_OF(E_FAIL, "E_FAIL");
        CASE_OF(E_PENDING, "E_PENDING");
        CASE_OF(DISP_E_PARAMNOTFOUND, "DISP_E_PARAMNOTFOUND");
        CASE_OF(DISP_E_TYPEMISMATCH, "DISP_E_TYPEMISMATCH");
        CASE_OF(DISP_E_BADVARTYPE, "DISP_E_BADVARTYPE");
        CASE_OF(DISP_E_OVERFLOW, "DISP_E_OVERFLOW");
        CASE_OF(CLASS_E_CLASSNOTAVAILABLE, "CLASS_E_CLASSNOTAVAILABLE");
        CASE_OF(CLASS_E_NOAGGREGATION, "CLASS_E_NOAGGREGATION");
        CASE_OF(CO_E_CLASSSTRING, "CO_E_CLASSSTRING");
        CASE_OF(MK_E_SYNTAX, "MK_E_SYNTAX");
        CASE_OF(STG_E_INVALIDFUNCTION, "STG_E_INVALIDFUNCTION");
        CASE_OF(STG_E_FILENOTFOUND, "STG_E_FILENOTFOUND");
        CASE_OF(STG_E_PATHNOTFOUND, "STG_E_PATHNOTFOUND");
        CASE_OF(STG_E_WRITEFAULT, "STG_E_WRITEFAULT");
        CASE_OF(STG_E_FILEALREADYEXISTS, "STG_E_FILEALREADYEXISTS");
        CASE_OF(STG_E_ABNORMALAPIEXIT, "STG_E_ABNORMALAPIEXIT");
        CASE_OF(NTE_BAD_UID, "NTE_BAD_UID");
        CASE_OF(NTE_BAD_HASH, "NTE_BAD_HASH");
        CASE_OF(NTE_BAD_KEY, "NTE_BAD_KEY");
        CASE_OF(NTE_BAD_LEN, "NTE_BAD_LEN");
        CASE_OF(NTE_BAD_DATA, "NTE_BAD_DATA");
        CASE_OF(NTE_BAD_SIGNATURE, "NTE_BAD_SIGNATURE");
        CASE_OF(NTE_BAD_VER, "NTE_BAD_VER");
        CASE_OF(NTE_BAD_ALGID, "NTE_BAD_ALGID");
        CASE_OF(NTE_BAD_FLAGS, "NTE_BAD_FLAGS");
        CASE_OF(NTE_BAD_TYPE, "NTE_BAD_TYPE");
        CASE_OF(NTE_BAD_KEY_STATE, "NTE_BAD_KEY_STATE");
        CASE_OF(NTE_BAD_HASH_STATE, "NTE_BAD_HASH_STATE");
        CASE_OF(NTE_NO_KEY, "NTE_NO_KEY");
        CASE_OF(NTE_NO_MEMORY, "NTE_NO_MEMORY");
        CASE_OF(NTE_SIGNATURE_FILE_BAD, "NTE_SIGNATURE_FILE_BAD");
        CASE_OF(NTE_FAIL, "NTE_FAIL");
        CASE_OF(CRYPT_E_HASH_VALUE, "CRYPT_E_HASH_VALUE");
        CASE_OF(TYPE_E_SIZETOOBIG, "TYPE_E_SIZETOOBIG");
        CASE_OF(TYPE_E_DUPLICATEID, "TYPE_E_DUPLICATEID");
        CASE_OF(INET_E_CANNOT_CONNECT, "INET_E_CANNOT_CONNECT");
        CASE_OF(INET_E_RESOURCE_NOT_FOUND, "INET_E_RESOURCE_NOT_FOUND");
        CASE_OF(INET_E_OBJECT_NOT_FOUND, "INET_E_OBJECT_NOT_FOUND");
        CASE_OF(INET_E_DATA_NOT_AVAILABLE, "INET_E_DATA_NOT_AVAILABLE");
        CASE_OF(INET_E_DOWNLOAD_FAILURE, "INET_E_DOWNLOAD_FAILURE");
        CASE_OF(INET_E_CONNECTION_TIMEOUT, "INET_E_CONNECTION_TIMEOUT");
        CASE_OF(INET_E_UNKNOWN_PROTOCOL, "INET_E_UNKNOWN_PROTOCOL");
        CASE_OF(CTL_E_OVERFLOW, "CTL_E_OVERFLOW");
        CASE_OF(CTL_E_OUTOFMEMORY, "CTL_E_OUTOFMEMORY");
        CASE_OF(CTL_E_DIVISIONBYZERO, "CTL_E_DIVISIONBYZERO");
        CASE_OF(CTL_E_OUTOFSTACKSPACE, "CTL_E_OUTOFSTACKSPACE");
        CASE_OF(CTL_E_FILENOTFOUND, "CTL_E_FILENOTFOUND");
        CASE_OF(CTL_E_DEVICEIOERROR, "CTL_E_DEVICEIOERROR");
        CASE_OF(CTL_E_PERMISSIONDENIED, "CTL_E_PERMISSIONDENIED");
        CASE_OF(CTL_E_PATHFILEACCESSERROR, "CTL_E_PATHFILEACCESSERROR");
        CASE_OF(CTL_E_PATHNOTFOUND, "CTL_E_PATHNOTFOUND");
        CASE_OF(DBG_PRINTEXCEPTION_C, "DBG_PRINTEXCEPTION_C");
//from corerror.h
        CASE_OF(CLDB_S_TRUNCATION, " STATUS: Data value was truncated. ");
        CASE_OF(META_S_DUPLICATE, " Attempt to define an object that already exists in valid scenerios. ");
        CASE_OF(CORDBG_S_BAD_START_SEQUENCE_POINT, " Attempt to SetIP not at a sequence point sequence point. ");
        CASE_OF(CORDBG_S_BAD_END_SEQUENCE_POINT, " Attempt to SetIP when not going to a sequence point. If both this and CORDBG_E_BAD_START_SEQUENCE_POINT are true, only CORDBG_E_BAD_START_SEQUENCE_POINT will be reported.");
        CASE_OF(CORDBG_S_FUNC_EVAL_HAS_NO_RESULT, " Some Func evals will lack a return value, ");
        CASE_OF(CORDBG_S_VALUE_POINTS_TO_VOID, " The Debugging API doesn't support dereferencing void pointers. ");
        CASE_OF(CORDBG_S_FUNC_EVAL_ABORTED, " The func eval completed, but was aborted. ");
        CASE_OF(CORDBG_S_AT_END_OF_STACK, "The stack walk has reached the end of the stack.  There are no more frames to walk.");
        CASE_OF(CORDBG_S_NOT_ALL_BITS_SET, " Not all bits specified were successfully applied ");
        CASE_OF(COR_E_TYPEUNLOADED, "Type has been unloaded.");
        CASE_OF(COR_E_APPDOMAINUNLOADED, "Attempted to access an unloaded appdomain.");
        CASE_OF(COR_E_CANNOTUNLOADAPPDOMAIN, "Error while unloading appdomain.");
        CASE_OF(MSEE_E_ASSEMBLYLOADINPROGRESS, "Assembly is still being loaded.");
        CASE_OF(COR_E_ASSEMBLYEXPECTED, "The module was expected to contain an assembly manifest.");
        CASE_OF(COR_E_NEWER_RUNTIME, "This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.");
        CASE_OF(COR_E_MULTIMODULEASSEMBLIESDIALLOWED, "The module cannot be loaded because only single file assemblies are supported.");
        CASE_OF(HOST_E_INVALIDOPERATION, "Invalid operation.");
        CASE_OF(HOST_E_CLRNOTAVAILABLE, "CLR has been disabled due to unrecoverable error.");
        CASE_OF(FUSION_E_REF_DEF_MISMATCH, "The located assembly's manifest definition does not match the assembly reference.");
        CASE_OF(FUSION_E_INVALID_NAME, "The given assembly name was invalid.");
        CASE_OF(FUSION_E_APP_DOMAIN_LOCKED, "The requested assembly version conflicts with what is already bound in the app domain or specified in the manifest.");
        CASE_OF(COR_E_LOADING_REFERENCE_ASSEMBLY, "Reference assemblies cannot be loaded for execution.");
        CASE_OF(COR_E_AMBIGUOUSIMPLEMENTATION, "Ambiguous implementation found.");
        CASE_OF(CLDB_E_FILE_BADREAD, "Error occurred during a read.");
        CASE_OF(CLDB_E_FILE_BADWRITE, "Error occurred during a write.");
        CASE_OF(CLDB_E_FILE_OLDVER, "Old version error.");
        CASE_OF(CLDB_E_SMDUPLICATE, "Create of shared memory failed.  A memory mapping of the same name already exists.");
        CASE_OF(CLDB_E_NO_DATA, "No .CLB data in the memory or stream.");
        CASE_OF(CLDB_E_INCOMPATIBLE, "Importing scope is not compatible with the emitting scope.");
        CASE_OF(CLDB_E_FILE_CORRUPT, "File is corrupt.");
        CASE_OF(CLDB_E_BADUPDATEMODE, "Cannot open a incrementally build scope for full update.");
        CASE_OF(CLDB_E_INDEX_NOTFOUND, "Index not found.");
        CASE_OF(CLDB_E_RECORD_NOTFOUND, "Record not found on lookup.");
        CASE_OF(CLDB_E_RECORD_OUTOFORDER, "Record is emitted out of order.");
        CASE_OF(CLDB_E_TOO_BIG, "A blob or string was too big.");
        CASE_OF(META_E_INVALID_TOKEN_TYPE, "A token of the wrong type passed to a metadata function.");
        CASE_OF(TLBX_E_LIBNOTREGISTERED, "Typelib export: Type library is not registered.");
        CASE_OF(META_E_BADMETADATA, "Merge: Inconsistency in meta data import scope.");
        CASE_OF(META_E_BAD_SIGNATURE, "Bad binary signature.");
        CASE_OF(META_E_BAD_INPUT_PARAMETER, "Bad input parameters.");
        CASE_OF(META_E_CANNOTRESOLVETYPEREF, "Cannot resolve typeref.");
        CASE_OF(META_E_STRINGSPACE_FULL, "No logical space left to create more user strings.");
        CASE_OF(META_E_HAS_UNMARKALL, "Unmark all has been called already.");
        CASE_OF(META_E_MUST_CALL_UNMARKALL, "Must call UnmarkAll first before marking.");
        CASE_OF(META_E_CA_INVALID_TARGET, "Known custom attribute on invalid target.");
        CASE_OF(META_E_CA_INVALID_VALUE, "Known custom attribute had invalid value.");
        CASE_OF(META_E_CA_INVALID_BLOB, "Known custom attribute blob has bad format.");
        CASE_OF(META_E_CA_REPEATED_ARG, "Known custom attribute blob has repeated named argument.");
        CASE_OF(META_E_CA_UNKNOWN_ARGUMENT, "Known custom attribute named argument not recognized.");
        CASE_OF(META_E_CA_UNEXPECTED_TYPE, "Known attribute parser found unexpected type.");
        CASE_OF(META_E_CA_INVALID_ARGTYPE, "Known attribute parser only handles fields, not properties.");
        CASE_OF(META_E_CA_INVALID_ARG_FOR_TYPE, "Known attribute parser found an argument that is invalid for the object it is applied to.");
        CASE_OF(META_E_CA_INVALID_UUID, "The format of the UUID was invalid.");
        CASE_OF(META_E_CA_INVALID_MARSHALAS_FIELDS, "The MarshalAs attribute has fields set that are not valid for the specified unmanaged type.");
        CASE_OF(META_E_CA_NT_FIELDONLY, "The specified unmanaged type is only valid on fields.");
        CASE_OF(META_E_CA_NEGATIVE_PARAMINDEX, "The parameter index cannot be negative.");
        CASE_OF(META_E_CA_NEGATIVE_CONSTSIZE, "The constant size cannot be negative.");
        CASE_OF(META_E_CA_FIXEDSTR_SIZE_REQUIRED, "A fixed string requires a size.");
        CASE_OF(META_E_CA_CUSTMARSH_TYPE_REQUIRED, "A custom marshaler requires the custom marshaler type.");
        CASE_OF(META_E_NOT_IN_ENC_MODE, "SaveDelta was called without being in EnC mode.");
        CASE_OF(META_E_CA_BAD_FRIENDS_ARGS, "InternalsVisibleTo can't have a version, culture, or processor architecture.");
        CASE_OF(META_E_CA_FRIENDS_SN_REQUIRED, " Strong-name signed assemblies can only grant friend access to strong name-signed assemblies ");
        CASE_OF(VLDTR_E_RID_OUTOFRANGE, "Rid is out of range.");
        CASE_OF(VLDTR_E_STRING_INVALID, "String offset is invalid.");
        CASE_OF(VLDTR_E_GUID_INVALID, "GUID offset is invalid.");
        CASE_OF(VLDTR_E_BLOB_INVALID, "Blob offset if invalid.");
        CASE_OF(VLDTR_E_MR_BADCALLINGCONV, "MemberRef has invalid calling convention.");
        CASE_OF(VLDTR_E_SIGNULL, "Signature specified is zero-sized.");
        CASE_OF(VLDTR_E_MD_BADCALLINGCONV, "Method signature has invalid calling convention.");
        CASE_OF(VLDTR_E_MD_THISSTATIC, "Method is marked static but has HASTHIS/EXPLICITTHIS set on the calling convention.");
        CASE_OF(VLDTR_E_MD_NOTTHISNOTSTATIC, "Method is not marked static but is not HASTHIS or EXPLICITTHIS.");
        CASE_OF(VLDTR_E_MD_NOARGCNT, "Method signature is missing the argument count.");
        CASE_OF(VLDTR_E_SIG_MISSELTYPE, "Signature missing element type.");
        CASE_OF(VLDTR_E_SIG_MISSTKN, "Signature missing token.");
        CASE_OF(VLDTR_E_SIG_TKNBAD, "Signature has bad token.");
        CASE_OF(VLDTR_E_SIG_MISSFPTR, "Signature is missing function pointer.");
        CASE_OF(VLDTR_E_SIG_MISSFPTRARGCNT, "Signature has function pointer missing argument count.");
        CASE_OF(VLDTR_E_SIG_MISSRANK, "Signature is missing rank specification.");
        CASE_OF(VLDTR_E_SIG_MISSNSIZE, "Signature is missing count of sized dimensions.");
        CASE_OF(VLDTR_E_SIG_MISSSIZE, "Signature is missing size of dimension.");
        CASE_OF(VLDTR_E_SIG_MISSNLBND, "Signature is missing count of lower bounds.");
        CASE_OF(VLDTR_E_SIG_MISSLBND, "Signature is missing a lower bound.");
        CASE_OF(VLDTR_E_SIG_BADELTYPE, "Signature has bad element type.");
        CASE_OF(VLDTR_E_TD_ENCLNOTNESTED, "TypeDef not nested has encloser.");
        CASE_OF(VLDTR_E_FMD_PINVOKENOTSTATIC, "Field or method is PInvoke but is not marked Static.");
        CASE_OF(VLDTR_E_SIG_SENTINMETHODDEF, "E_T_SENTINEL in MethodDef signature.");
        CASE_OF(VLDTR_E_SIG_SENTMUSTVARARG, "E_T_SENTINEL <=> VARARG.");
        CASE_OF(VLDTR_E_SIG_MULTSENTINELS, "Multiple E_T_SENTINELs.");
        CASE_OF(VLDTR_E_SIG_MISSARG, "Signature missing argument.");
        CASE_OF(VLDTR_E_SIG_BYREFINFIELD, "Field of ByRef type.");
        CASE_OF(CORDBG_E_UNRECOVERABLE_ERROR, "Unrecoverable API error.");
        CASE_OF(CORDBG_E_PROCESS_TERMINATED, "Process was terminated.");
        CASE_OF(CORDBG_E_PROCESS_NOT_SYNCHRONIZED, "Process not synchronized.");
        CASE_OF(CORDBG_E_CLASS_NOT_LOADED, "A class is not loaded.");
        CASE_OF(CORDBG_E_IL_VAR_NOT_AVAILABLE, "An IL variable is not available at the current native IP.");
        CASE_OF(CORDBG_E_BAD_REFERENCE_VALUE, "A reference value was found to be bad during dereferencing.");
        CASE_OF(CORDBG_E_FIELD_NOT_AVAILABLE, "A field in a class is not available, because the runtime optimized it away.");
        CASE_OF(CORDBG_E_NON_NATIVE_FRAME, "'Native-frame-only' operation on non-native frame.");
        CASE_OF(CORDBG_E_CODE_NOT_AVAILABLE, "The code is currently unavailable.");
        CASE_OF(CORDBG_E_FUNCTION_NOT_IL, "Attempt to get a ICorDebugFunction for a function that is not IL.");
        CASE_OF(CORDBG_E_CANT_SET_IP_INTO_FINALLY, "SetIP is not possible because SetIP would move EIP from outside of an exception handling finally clause to a point inside of one.");
        CASE_OF(CORDBG_E_CANT_SET_IP_OUT_OF_FINALLY, "SetIP is not possible because it would move EIP from within an exception handling finally clause to a point outside of one.");
        CASE_OF(CORDBG_E_CANT_SET_IP_INTO_CATCH, "SetIP is not possible, because SetIP would move EIP from outside of an exception handling catch clause to a point inside of one.");
        CASE_OF(CORDBG_E_SET_IP_NOT_ALLOWED_ON_NONLEAF_FRAME, "SetIP cannot be done on any frame except the leaf frame.");
        CASE_OF(CORDBG_E_SET_IP_IMPOSSIBLE, "SetIP is not allowed.");
        CASE_OF(CORDBG_E_FUNC_EVAL_BAD_START_POINT, "Func eval cannot work. Bad starting point.");
        CASE_OF(CORDBG_E_INVALID_OBJECT, "This object value is no longer valid.");
        CASE_OF(CORDBG_E_FUNC_EVAL_NOT_COMPLETE, "CordbEval::GetResult called before func eval has finished.");
        CASE_OF(CORDBG_E_STATIC_VAR_NOT_AVAILABLE, "A static variable is not available because it has not been initialized yet.");
        CASE_OF(CORDBG_E_CANT_SETIP_INTO_OR_OUT_OF_FILTER, "SetIP cannot leave or enter a filter.");
        CASE_OF(CORDBG_E_CANT_CHANGE_JIT_SETTING_FOR_ZAP_MODULE, "JIT settings for ZAP modules cannot be changed.");
        CASE_OF(CORDBG_E_CANT_SET_IP_OUT_OF_FINALLY_ON_WIN64, "SetIP is not possible because it would move EIP from within a finally clause to a point outside of one on this platforms.");
        CASE_OF(CORDBG_E_CANT_SET_IP_OUT_OF_CATCH_ON_WIN64, "SetIP is not possible because it would move EIP from within a catch clause to a point outside of one on this platforms.");
        CASE_OF(CORDBG_E_CANT_SET_TO_JMC, "Cannot use JMC on this code (likely wrong JIT settings).");
        CASE_OF(CORDBG_E_NO_CONTEXT_FOR_INTERNAL_FRAME, "Internal frame markers have no associated context.");
        CASE_OF(CORDBG_E_NOT_CHILD_FRAME, "The current frame is not a child frame.");
        CASE_OF(CORDBG_E_NON_MATCHING_CONTEXT, "The provided CONTEXT does not match the specified thread.");
        CASE_OF(CORDBG_E_PAST_END_OF_STACK, "The stackwalker is now past the end of stack.  No information is available.");
        CASE_OF(CORDBG_E_FUNC_EVAL_CANNOT_UPDATE_REGISTER_IN_NONLEAF_FRAME, "Func eval cannot update a variable stored in a register on a non-leaf frame.  The most likely cause is that such a variable is passed as a ref/out argument.");
        CASE_OF(CORDBG_E_BAD_THREAD_STATE, "The state of the thread is invalid.");
        CASE_OF(CORDBG_E_DEBUGGER_ALREADY_ATTACHED, "This process has already been attached.");
        CASE_OF(CORDBG_E_SUPERFLOUS_CONTINUE, "Returned from a call to Continue that was not matched with a stopping event.");
        CASE_OF(CORDBG_E_SET_VALUE_NOT_ALLOWED_ON_NONLEAF_FRAME, "Cannot perfrom SetValue on non-leaf frames.");
        CASE_OF(CORDBG_E_ENC_MODULE_NOT_ENC_ENABLED, "Tried to do Edit and Continue on a module that was not started in Edit and Continue mode.");
        CASE_OF(CORDBG_E_SET_IP_NOT_ALLOWED_ON_EXCEPTION, "SetIP cannot be done on any exception.");
        CASE_OF(CORDBG_E_VARIABLE_IS_ACTUALLY_LITERAL, "The 'variable' does not exist because it is a literal optimized away by the compiler.");
        CASE_OF(CORDBG_E_PROCESS_DETACHED, "Process has been detached.");
        CASE_OF(CORDBG_E_ENC_CANT_ADD_FIELD_TO_VALUE_OR_LAYOUT_CLASS, "Adding a field to a value or layout class is prohibited.");
        CASE_OF(CORDBG_E_FIELD_NOT_STATIC, "GetStaticFieldValue called on a non-static field.");
        CASE_OF(CORDBG_E_FIELD_NOT_INSTANCE, "Returned if someone tries to call GetStaticFieldValue on a non-instance field.");
        CASE_OF(CORDBG_E_ENC_JIT_CANT_UPDATE, "The JIT is unable to update the method.");
        CASE_OF(CORDBG_E_ENC_INTERNAL_ERROR, "Internal Runtime Error while doing Edit-and-Continue.");
        CASE_OF(CORDBG_E_ENC_HANGING_FIELD, "The field was added via Edit and Continue after the class was loaded.");
        CASE_OF(CORDBG_E_MODULE_NOT_LOADED, "Module not loaded.");
        CASE_OF(CORDBG_E_UNABLE_TO_SET_BREAKPOINT, "Cannot set a breakpoint here.");
        CASE_OF(CORDBG_E_DEBUGGING_NOT_POSSIBLE, "Debugging is not possible due to an incompatibility within the CLR implementation.");
        CASE_OF(CORDBG_E_KERNEL_DEBUGGER_ENABLED, "A kernel debugger is enabled on the system.  User-mode debugging will trap to the kernel debugger.");
        CASE_OF(CORDBG_E_KERNEL_DEBUGGER_PRESENT, "A kernel debugger is present on the system.  User-mode debugging will trap to the kernel debugger.");
        CASE_OF(CORDBG_E_INCOMPATIBLE_PROTOCOL, "The debugger's protocol is incompatible with the debuggee.");
        CASE_OF(CORDBG_E_TOO_MANY_PROCESSES, "The debugger can only handle a finite number of debuggees.");
        CASE_OF(CORDBG_E_INTEROP_NOT_SUPPORTED, "Interop debugging is not supported.");
        CASE_OF(CORDBG_E_NO_REMAP_BREAKPIONT, "Cannot call RemapFunction until have received RemapBreakpoint.");
        CASE_OF(CORDBG_E_OBJECT_NEUTERED, "Object is in a zombie state.");
        CASE_OF(CORPROF_E_FUNCTION_NOT_COMPILED, "Function not yet compiled.");
        CASE_OF(CORPROF_E_DATAINCOMPLETE, "The ID is not fully loaded/defined yet.");
        CASE_OF(CORPROF_E_FUNCTION_NOT_IL, "The Method has no associated IL.");
        CASE_OF(CORPROF_E_NOT_MANAGED_THREAD, "The thread has never run managed code before.");
        CASE_OF(CORPROF_E_CALL_ONLY_FROM_INIT, "The function may only be called during profiler initialization.");
        CASE_OF(CORPROF_E_NOT_YET_AVAILABLE, "Requested information is not yet available.");
        CASE_OF(CORPROF_E_TYPE_IS_PARAMETERIZED, "The given type is a generic and cannot be used with this method.");
        CASE_OF(CORPROF_E_FUNCTION_IS_PARAMETERIZED, "The given function is a generic and cannot be used with this method.");
        CASE_OF(CORPROF_E_STACKSNAPSHOT_INVALID_TGT_THREAD, " A profiler tried to walk the stack of an invalid thread ");
        CASE_OF(CORPROF_E_STACKSNAPSHOT_UNMANAGED_CTX, " A profiler can not walk a thread that is currently executing unmanaged code ");
        CASE_OF(CORPROF_E_STACKSNAPSHOT_UNSAFE, " A stackwalk at this point may cause dead locks or data corruption ");
        CASE_OF(CORPROF_E_STACKSNAPSHOT_ABORTED, " Stackwalking callback requested the walk to abort ");
        CASE_OF(CORPROF_E_LITERALS_HAVE_NO_ADDRESS, " Returned when asked for the address of a static that is a literal. ");
        CASE_OF(CORPROF_E_UNSUPPORTED_CALL_SEQUENCE, " A call was made at an unsupported time.  Examples include illegally calling a profiling API method asynchronously, calling a method that might trigger a GC at an unsafe time, and calling a method at a time that could cause locks to be taken out of order.  ");
        CASE_OF(CORPROF_E_ASYNCHRONOUS_UNSAFE, " A legal asynchronous call was made at an unsafe time (e.g., CLR locks are held)  ");
        CASE_OF(CORPROF_E_CLASSID_IS_ARRAY, " The specified ClassID cannot be inspected by this function because it is an array ");
        CASE_OF(CORPROF_E_CLASSID_IS_COMPOSITE, " The specified ClassID is a non-array composite type (e.g., ref) and cannot be inspected ");
        CASE_OF(CORPROF_E_PROFILER_DETACHING, " The profiler's call into the CLR is disallowed because the profiler is attempting to detach. ");
        CASE_OF(CORPROF_E_PROFILER_NOT_ATTACHABLE, " The profiler does not support attaching to a live process. ");
        CASE_OF(CORPROF_E_UNRECOGNIZED_PIPE_MSG_FORMAT, " The message sent on the profiling API attach pipe is in an unrecognized format. ");
        CASE_OF(CORPROF_E_PROFILER_ALREADY_ACTIVE, " The request to attach a profiler was denied because a profiler is already loaded. ");
        CASE_OF(CORPROF_E_PROFILEE_INCOMPATIBLE_WITH_TRIGGER, " Unable to request a profiler attach because the target profilee's runtime is of a version incompatible with the current process calling AttachProfiler(). ");
        CASE_OF(CORPROF_E_IPC_FAILED, " AttachProfiler() encountered an error while communicating on the pipe to the target profilee.  This is often caused by a target profilee that is shutting down or killed while AttachProfiler() is reading or writing the pipe. ");
        CASE_OF(CORPROF_E_PROFILEE_PROCESS_NOT_FOUND, " AttachProfiler() was unable to find a profilee with the specified process ID. ");
        CASE_OF(CORPROF_E_CALLBACK3_REQUIRED, " Profiler must implement ICorProfilerCallback3 interface for this call to be supported. ");
        CASE_OF(CORPROF_E_UNSUPPORTED_FOR_ATTACHING_PROFILER, " This call was attempted by a profiler that attached to the process after startup, but this call is only supported by profilers that are loaded into the process on startup.");
        CASE_OF(CORPROF_E_IRREVERSIBLE_INSTRUMENTATION_PRESENT, " Detach is impossible because the profiler has either instrumented IL or inserted enter/leave hooks. Detach was not attempted; the profiler is still fully attached. ");
        CASE_OF(CORPROF_E_RUNTIME_UNINITIALIZED, " The profiler called a function that cannot complete because the CLR is not yet fully initialized.  The profiler may try again once the CLR has fully started. ");
        CASE_OF(CORPROF_E_IMMUTABLE_FLAGS_SET, " Detach is impossible because immutable flags were set by the profiler at startup. Detach was not attempted; the profiler is still fully attached. ");
        CASE_OF(CORPROF_E_PROFILER_NOT_YET_INITIALIZED, " The profiler called a function that cannot complete because the profiler is not yet fully initialized. ");
        CASE_OF(CORPROF_E_INCONSISTENT_WITH_FLAGS, " The profiler called a function that first requires additional flags to be set in the event mask.  This HRESULT may also indicate that the profiler called a function that first requires that some of the flags currently set in the event mask be reset. ");
        CASE_OF(CORPROF_E_PROFILER_CANCEL_ACTIVATION, " The profiler has requested that the CLR instance not load the profiler into this process. ");
        CASE_OF(CORPROF_E_CONCURRENT_GC_NOT_PROFILABLE, " Concurrent GC mode is enabled, which prevents use of COR_PRF_MONITOR_GC ");
        CASE_OF(CORPROF_E_DEBUGGING_DISABLED, " This functionality requires CoreCLR debugging to be enabled. ");
        CASE_OF(CORPROF_E_TIMEOUT_WAITING_FOR_CONCURRENT_GC, " Timed out on waiting for concurrent GC to finish during attach. ");
        CASE_OF(CORPROF_E_MODULE_IS_DYNAMIC, " The specified module was dynamically generated (e.g., via Reflection.Emit API), and is thus not supported by this API method. ");
        CASE_OF(CORPROF_E_CALLBACK4_REQUIRED, " Profiler must implement ICorProfilerCallback4 interface for this call to be supported. ");
        CASE_OF(CORPROF_E_REJIT_NOT_ENABLED, " This call is not supported unless ReJIT is first enabled during initialization by setting COR_PRF_ENABLE_REJIT via SetEventMask. ");
        CASE_OF(CORPROF_E_FUNCTION_IS_COLLECTIBLE, " The specified function is instantiated into a collectible assembly, and is thus not supported by this API method. ");
        CASE_OF(CORPROF_E_CALLBACK6_REQUIRED, " Profiler must implement ICorProfilerCallback6 interface for this call to be supported. ");
        CASE_OF(CORPROF_E_CALLBACK7_REQUIRED, " Profiler must implement ICorProfilerCallback7 interface for this call to be supported. ");
        CASE_OF(CORPROF_E_REJIT_INLINING_DISABLED, " The runtime's tracking of inlined methods for ReJIT is not enabled. ");
        CASE_OF(CORDIAGIPC_E_BAD_ENCODING, " The runtime was unable to decode the Header or Payload. ");
        CASE_OF(CORDIAGIPC_E_UNKNOWN_COMMAND, " The specified CommandSet or CommandId is unknown. ");
        CASE_OF(CORDIAGIPC_E_UNKNOWN_MAGIC, " The magic version of Diagnostics IPC is unknown. ");
        CASE_OF(CORDIAGIPC_E_UNKNOWN_ERROR, " An unknown error occurred in the Diagnpostics IPC Server. ");
        CASE_OF(CORPROF_E_SUSPENSION_IN_PROGRESS, " The runtime cannot be suspened since a suspension is already in progress. ");
        CASE_OF(CORPROF_E_NOT_GC_OBJECT, "This object belongs to a non-gc heap.");
        CASE_OF(CORPROF_E_MODULE_IS_ENC, " The module is EnC ");
        CASE_OF(CORSEC_E_POLICY_EXCEPTION, "PolicyException thrown.");
        CASE_OF(CORSEC_E_MIN_GRANT_FAIL, "Failed to grant minimum permission requests.");
        CASE_OF(CORSEC_E_NO_EXEC_PERM, "Failed to grant permission to execute.");
        CASE_OF(CORSEC_E_XMLSYNTAX, "XML Syntax error.");
        CASE_OF(CORSEC_E_INVALID_STRONGNAME, "Strong name validation failed.");
        CASE_OF(CORSEC_E_INVALID_IMAGE_FORMAT, "Invalid assembly file format.");
        CASE_OF(CORSEC_E_INVALID_PUBLICKEY, "Invalid assembly public key.");
        CASE_OF(CORSEC_E_SIGNATURE_MISMATCH, "Signature size mismatch.");
        CASE_OF(CORSEC_E_CRYPTO, "Failure during Cryptographic operation.");
        CASE_OF(CORSEC_E_CRYPTO_UNEX_OPER, "Unexpected Cryptographic operation.");
        CASE_OF(COR_E_EXCEPTION, "General Exception");
        CASE_OF(COR_E_SYSTEM, "System.Exception");
        CASE_OF(COR_E_ARGUMENTOUTOFRANGE, "An argument was out of its legal range.");
        CASE_OF(COR_E_ARRAYTYPEMISMATCH, "Attempted to store an object of the wrong type in an array.");
        CASE_OF(COR_E_CONTEXTMARSHAL, "Attempted to marshal an object across a context boundary.");
        CASE_OF(COR_E_TIMEOUT, "Operation timed out.");
        CASE_OF(COR_E_EXECUTIONENGINE, "Internal CLR error.");
        CASE_OF(COR_E_FIELDACCESS, "Access to this field is denied.");
        CASE_OF(COR_E_INDEXOUTOFRANGE, "Array subscript out of range.");
        CASE_OF(COR_E_INVALIDOPERATION, "An operation is not legal in the current state.");
        CASE_OF(COR_E_SECURITY, "An error relating to security occurred.");
        CASE_OF(COR_E_SERIALIZATION, "An error relating to serialization occurred.");
        CASE_OF(COR_E_VERIFICATION, "A verification failure has occurred.");
        CASE_OF(COR_E_METHODACCESS, "Access to this method is denied.");
        CASE_OF(COR_E_MISSINGFIELD, "Field does not exist.");
        CASE_OF(COR_E_MISSINGMEMBER, "Member does not exist.");
        CASE_OF(COR_E_MISSINGMETHOD, "Method does not exist.");
        CASE_OF(COR_E_MULTICASTNOTSUPPORTED, "Attempt to combine delegates that are not multicast.");
        CASE_OF(COR_E_NOTSUPPORTED, "Operation is not supported.");
        CASE_OF(COR_E_OVERFLOW, "Arithmetic, casting or conversion operation overflowed or underflowed.");
        CASE_OF(COR_E_RANK, "An array has the wrong number of dimensions for a particular operation.");
        CASE_OF(COR_E_SYNCHRONIZATIONLOCK, "This operation must be called from a synchronized block.");
        CASE_OF(COR_E_THREADINTERRUPTED, "Thread was interrupted from a waiting state.");
        CASE_OF(COR_E_MEMBERACCESS, "Access to this member is denied.");
        CASE_OF(COR_E_THREADSTATE, "Thread is in an invalid state for this operation.");
        CASE_OF(COR_E_THREADSTOP, "Thread is stopping.");
        CASE_OF(COR_E_TYPELOAD, "Could not find or load a type.");
        CASE_OF(COR_E_ENTRYPOINTNOTFOUND, "Could not find the specified DllImport entrypoint.");
        CASE_OF(COR_E_DLLNOTFOUND, "Could not find the specified DllImport Dll.");
        CASE_OF(COR_E_THREADSTART, " Indicate that a user thread fails to start.");
        CASE_OF(COR_E_INVALIDCOMOBJECT, "An invalid __ComObject has been used.");
        CASE_OF(COR_E_NOTFINITENUMBER, "Not a Number.");
        CASE_OF(COR_E_DUPLICATEWAITOBJECT, "An object appears more than once in the wait objects array.");
        CASE_OF(COR_E_SEMAPHOREFULL, "Reached maximum count for semaphore.");
        CASE_OF(COR_E_WAITHANDLECANNOTBEOPENED, "No semaphore of the given name exists.");
        CASE_OF(COR_E_ABANDONEDMUTEX, "The wait completed due to an abandoned mutex.");
        CASE_OF(COR_E_THREADABORTED, "Thread has aborted.");
        CASE_OF(COR_E_INVALIDOLEVARIANTTYPE, "OLE Variant has an invalid type.");
        CASE_OF(COR_E_MISSINGMANIFESTRESOURCE, "An expected resource in the assembly manifest was missing.");
        CASE_OF(COR_E_SAFEARRAYTYPEMISMATCH, "A mismatch has occurred between the runtime type of the array and the sub type recorded in the metadata.");
        CASE_OF(COR_E_TYPEINITIALIZATION, "Uncaught exception during type initialization.");
        CASE_OF(COR_E_MARSHALDIRECTIVE, "Invalid marshaling directives.");
        CASE_OF(COR_E_MISSINGSATELLITEASSEMBLY, "An expected satellite assembly containing the ultimate fallback resources for a given culture was not found or could not be loaded.");
        CASE_OF(COR_E_FORMAT, "The format of one argument does not meet the contract of the method.");
        CASE_OF(COR_E_SAFEARRAYRANKMISMATCH, "A mismatch has occurred between the runtime rank of the array and the rank recorded in the metadata.");
        CASE_OF(COR_E_PLATFORMNOTSUPPORTED, "Operation is not supported on this platform.");
        CASE_OF(COR_E_INVALIDPROGRAM, "Invalid IL or CLR metadata.");
        CASE_OF(COR_E_OPERATIONCANCELED, "The operation was cancelled.");
        CASE_OF(COR_E_INSUFFICIENTMEMORY, " Not enough memory was available for an operation.");
        CASE_OF(COR_E_RUNTIMEWRAPPED, " An object that does not derive from System.Exception has been wrapped in a RuntimeWrappedException.");
        CASE_OF(COR_E_DATAMISALIGNED, "A datatype misalignment was detected in a load or store instruction.");
        CASE_OF(COR_E_CODECONTRACTFAILED, "A managed code contract (ie, precondition, postcondition, invariant, or assert) failed.");
        CASE_OF(COR_E_TYPEACCESS, "Access to this type is denied.");
        CASE_OF(COR_E_ACCESSING_CCW, "Fail to access a CCW because the corresponding managed object is already collected.");
        CASE_OF(COR_E_KEYNOTFOUND, "The given key was not present in the dictionary.");
        CASE_OF(COR_E_INSUFFICIENTEXECUTIONSTACK, "Insufficient stack to continue executing the program safely. This can happen from having too many functions on the call stack or function on the stack using too much stack space.");
        CASE_OF(COR_E_APPLICATION, "Application exception");
        CASE_OF(COR_E_INVALIDFILTERCRITERIA, "The given filter criteria does not match the filter content.");
        CASE_OF(COR_E_REFLECTIONTYPELOAD, "Could not find or load a specific class that was requested through Reflection.");
        CASE_OF(COR_E_TARGET, "Attempt to invoke non-static method with a null Object.");
        CASE_OF(COR_E_TARGETINVOCATION, "Uncaught exception thrown by method called through Reflection.");
        CASE_OF(COR_E_CUSTOMATTRIBUTEFORMAT, "Custom attribute has invalid format.");
        CASE_OF(COR_E_IO, "Error during managed I/O.");
        CASE_OF(COR_E_FILELOAD, "Could not find or load a specific file.");
        CASE_OF(COR_E_OBJECTDISPOSED, "The object has already been disposed.");
        CASE_OF(COR_E_FAILFAST, "Runtime operation halted by call to System.Environment.FailFast().");
        CASE_OF(COR_E_HOSTPROTECTION, "The host has forbidden this operation.");
        CASE_OF(COR_E_ILLEGAL_REENTRANCY, "Attempted to call into managed code when executing inside a low level extensibility point.");
        CASE_OF(CLR_E_SHIM_RUNTIMELOAD, "Failed to load the runtime.");
        CASE_OF(CLR_E_SHIM_LEGACYRUNTIMEALREADYBOUND, "A runtime has already been bound for legacy activation policy use.");
        CASE_OF(VER_E_FIELD_SIG, "[field sig]");
        CASE_OF(VER_E_CIRCULAR_VAR_CONSTRAINTS, "Method parent has circular class type parameter constraints.");
        CASE_OF(VER_E_CIRCULAR_MVAR_CONSTRAINTS, "Method has circular method type parameter constraints.");
        CASE_OF(COR_E_Data, "COR_E_Data");
        CASE_OF(VLDTR_E_SIG_BADVOID, "Illegal 'void' in signature.");
        CASE_OF(VLDTR_E_GP_ILLEGAL_VARIANT_MVAR, "GenericParam is a method type parameter and must be non-variant.");
        CASE_OF(CORDBG_E_THREAD_NOT_SCHEDULED, "Thread is not scheduled. Thus we may not have OSThreadId, handle, or context.");
        CASE_OF(CORDBG_E_HANDLE_HAS_BEEN_DISPOSED, "Handle has been disposed.");
        CASE_OF(CORDBG_E_NONINTERCEPTABLE_EXCEPTION, "Cannot intercept this exception.");
        CASE_OF(CORDBG_E_INTERCEPT_FRAME_ALREADY_SET, "The intercept frame for this exception has already been set.");
        CASE_OF(CORDBG_E_NO_NATIVE_PATCH_AT_ADDR, "There is no native patch at the given address.");
        CASE_OF(CORDBG_E_MUST_BE_INTEROP_DEBUGGING, "This API is only allowed when interop debugging.");
        CASE_OF(CORDBG_E_NATIVE_PATCH_ALREADY_AT_ADDR, "There is already a native patch at the address.");
        CASE_OF(CORDBG_E_TIMEOUT, "A wait timed out, likely an indication of deadlock.");
        CASE_OF(CORDBG_E_CANT_CALL_ON_THIS_THREAD, "Cannot use the API on this thread.");
        CASE_OF(CORDBG_E_ENC_INFOLESS_METHOD, "Method was not JIT'd in EnC mode.");
        CASE_OF(CORDBG_E_ENC_IN_FUNCLET, "Method is in a callable handler/filter. Cannot increase stack.");
        CASE_OF(CORDBG_E_ENC_EDIT_NOT_SUPPORTED, "Attempt to perform unsupported edit.");
        CASE_OF(CORDBG_E_NOTREADY, "The LS is not in a good spot to perform the requested operation.");
        CASE_OF(CORDBG_E_CANNOT_RESOLVE_ASSEMBLY, "We failed to resolve assembly given an AssemblyRef token. Assembly may be not loaded yet or not a valid token.");
        CASE_OF(CORDBG_E_MUST_BE_IN_LOAD_MODULE, "Must be in context of LoadModule callback to perform requested operation.");
        CASE_OF(CORDBG_E_CANNOT_BE_ON_ATTACH, "Requested operation cannot be performed during an attach operation.");
        CASE_OF(CORDBG_E_NGEN_NOT_SUPPORTED, "NGEN is not supported.");
        CASE_OF(CORDBG_E_ILLEGAL_SHUTDOWN_ORDER, "Trying to shutdown out of order.");
        CASE_OF(CORDBG_E_CANNOT_DEBUG_FIBER_PROCESS, "Debugging fiber mode managed process is not supported.");
        CASE_OF(CORDBG_E_MUST_BE_IN_CREATE_PROCESS, "Must be in context of CreateProcess callback to perform requested operation.");
        CASE_OF(CORDBG_E_DETACH_FAILED_OUTSTANDING_EVALS, "All outstanding func-evals have not completed, detaching is not allowed at this time.");
        CASE_OF(CORDBG_E_DETACH_FAILED_OUTSTANDING_STEPPERS, "All outstanding steppers have not been closed, detaching is not allowed at this time.");
        CASE_OF(CORDBG_E_CANT_INTEROP_STEP_OUT, "Cannot have an ICorDebugStepper do a native step-out.");
        CASE_OF(CORDBG_E_DETACH_FAILED_OUTSTANDING_BREAKPOINTS, "All outstanding breakpoints have not been closed, detaching is not allowed at this time.");
        CASE_OF(CORDBG_E_ILLEGAL_IN_STACK_OVERFLOW, "The operation is illegal because of a stack overflow.");
        CASE_OF(CORDBG_E_ILLEGAL_AT_GC_UNSAFE_POINT, "The operation failed because it is a GC unsafe point.");
        CASE_OF(CORDBG_E_ILLEGAL_IN_PROLOG, "The operation failed because the thread is in the prolog.");
        CASE_OF(CORDBG_E_ILLEGAL_IN_NATIVE_CODE, "The operation failed because the thread is in native code.");
        CASE_OF(CORDBG_E_ILLEGAL_IN_OPTIMIZED_CODE, "The operation failed because the thread is in optimized code.");
        CASE_OF(CORDBG_E_APPDOMAIN_MISMATCH, "A supplied object or type belongs to the wrong AppDomain.");
        CASE_OF(CORDBG_E_CONTEXT_UNVAILABLE, "The thread's context is not available.");
        CASE_OF(CORDBG_E_INCOMPATIBLE_PLATFORMS, "The operation failed because debuggee and debugger are on incompatible platforms.");
        CASE_OF(CORDBG_E_DEBUGGING_DISABLED, "The operation failed because the debugging has been disabled");
        CASE_OF(CORDBG_E_DETACH_FAILED_ON_ENC, "Detach is illegal after an Edit and Continue on a module.");
        CASE_OF(CORDBG_E_CURRENT_EXCEPTION_IS_OUTSIDE_CURRENT_EXECUTION_SCOPE, "Cannot intercept the current exception at the specified frame.");
        CASE_OF(CORDBG_E_HELPER_MAY_DEADLOCK, "The debugger helper thread cannot obtain the locks it needs to perform this operation.");
        CASE_OF(CORDBG_E_MISSING_METADATA, "The operation failed because the debugger could not get the metadata.");
        CASE_OF(CORDBG_E_TARGET_INCONSISTENT, "The debuggee is in a corrupt state.");
        CASE_OF(CORDBG_E_DETACH_FAILED_OUTSTANDING_TARGET_RESOURCES, "Detach failed because there are outstanding resources in the target.");
        CASE_OF(CORDBG_E_TARGET_READONLY, "The debuggee is read-only.");
        CASE_OF(CORDBG_E_MISMATCHED_CORWKS_AND_DACWKS_DLLS, "The version of clr.dll in the target does not match the one mscordacwks.dll was built for.");
        CASE_OF(CORDBG_E_MODULE_LOADED_FROM_DISK, "Symbols are not supplied for modules loaded from disk.");
        CASE_OF(CORDBG_E_SYMBOLS_NOT_AVAILABLE, "The application did not supply symbols when it loaded or created this module, or they are not yet available.");
        CASE_OF(CORDBG_E_DEBUG_COMPONENT_MISSING, "A debug component is not installed.");
        CASE_OF(CORDBG_E_LIBRARY_PROVIDER_ERROR, "The ICLRDebuggingLibraryProvider callback returned an error or did not provide a valid handle.");
        CASE_OF(CORDBG_E_NOT_CLR, "The module at the base address indicated was not recognized as a CLR");
        CASE_OF(CORDBG_E_MISSING_DATA_TARGET_INTERFACE, "The provided data target does not implement the required interfaces for this version of the runtime");
        CASE_OF(CORDBG_E_UNSUPPORTED_DEBUGGING_MODEL, "This debugging model is unsupported by the specified runtime");
        CASE_OF(CORDBG_E_UNSUPPORTED_FORWARD_COMPAT, "The debugger is not designed to support the version of the CLR the debuggee is using.");
        CASE_OF(CORDBG_E_UNSUPPORTED_VERSION_STRUCT, "The version struct has an unrecognized value for wStructVersion");
        CASE_OF(CORDBG_E_READVIRTUAL_FAILURE, "A call into a ReadVirtual implementation returned failure");
        CASE_OF(CORDBG_E_VALUE_POINTS_TO_FUNCTION, "The Debugging API doesn't support dereferencing function pointers.");
        CASE_OF(CORDBG_E_CORRUPT_OBJECT, "The address provided does not point to a valid managed object.");
        CASE_OF(CORDBG_E_GC_STRUCTURES_INVALID, "The GC heap structures are not in a valid state for traversal.");
        CASE_OF(CORDBG_E_INVALID_OPCODE, "The specified IL offset or opcode is not supported for this operation.");
        CASE_OF(CORDBG_E_UNSUPPORTED, "The specified action is unsupported by this version of the runtime.");
        CASE_OF(CORDBG_E_MISSING_DEBUGGER_EXPORTS, "The debuggee memory space does not have the expected debugging export table.");
        CASE_OF(CORDBG_E_DATA_TARGET_ERROR, "Failure when calling a data target method.");
        CASE_OF(CORDBG_E_UNSUPPORTED_DELEGATE, "The delegate contains a delegate currently not supported by the API.");
        CASE_OF(CORDBG_E_ASSEMBLY_UPDATES_APPLIED, "The operation is not supported because assembly updates have been applied.");
        CASE_OF(PEFMT_E_64BIT, "File is PE32+.");
        CASE_OF(PEFMT_E_32BIT, "File is PE32");
        CASE_OF(CLDB_E_INTERNALERROR, "CLDB_E_INTERNALERROR");
        CASE_OF(CLR_E_BIND_ARCHITECTURE_MISMATCH, "The assembly architecture is not compatible with the current process architecture.");
        CASE_OF(CLR_E_GC_OOM, "Failfast due to an OOM during a GC");
        CASE_OF(CLR_E_GC_BAD_AFFINITY_CONFIG, "GCHeapAffinitizeMask or GCHeapAffinitizeRanges didn't specify any CPUs the current process is affinitized to.");
        CASE_OF(CLR_E_GC_BAD_AFFINITY_CONFIG_FORMAT, "GCHeapAffinitizeRanges configuration string has invalid format.");
        CASE_OF(CLR_E_GC_BAD_HARD_LIMIT, "GC heap hard limit configuration is invalid.");
        CASE_OF(CLR_E_GC_LARGE_PAGE_MISSING_HARD_LIMIT, "GC large page support requires hard limit settings.");
        CASE_OF(CLR_E_GC_BAD_REGION_SIZE, "GC Region Size must be less than 2GB.");
        CASE_OF(COR_E_UNAUTHORIZEDACCESS, " Access is denied.");
        CASE_OF(COR_E_ARGUMENT, " An argument does not meet the contract of the method.");
        CASE_OF(COR_E_INVALIDCAST, " Indicates a bad cast condition");
        CASE_OF(COR_E_OUTOFMEMORY, " The EE thows this exception when no more memory is avaible to continue execution");
        CASE_OF(COR_E_NULLREFERENCE, " Dereferencing a null reference. In general class libraries should not throw this");
        CASE_OF(COR_E_ARITHMETIC, " Overflow or underflow in mathematical operations.");
        CASE_OF(COR_E_PATHTOOLONG, " The specified path was too long.");
        CASE_OF(COR_E_FILENOTFOUND, "COR_E_FILENOTFOUND");
        CASE_OF(COR_E_ENDOFSTREAM, " Thrown when the End of file is reached");
        CASE_OF(COR_E_DIRECTORYNOTFOUND, " The specified path couldn't be found.");
        CASE_OF(COR_E_STACKOVERFLOW, " Is raised by the EE when the execution stack overflows as it is attempting to ex");
        CASE_OF(COR_E_AMBIGUOUSMATCH, " While late binding to a method via reflection, could not resolve between");
        CASE_OF(COR_E_TARGETPARAMCOUNT, " There was a mismatch between number of arguments provided and the number expected");
        CASE_OF(COR_E_DIVIDEBYZERO, " Attempted to divide a number by zero.");
        CASE_OF(COR_E_BADIMAGEFORMAT, "The format of a DLL or executable being loaded is invalid.");
        default:
            str = "Unknown HRESULT code";
            break;
    }
    return str;
}

} // namespace netcoredbg
