return res;
}
-
-#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(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(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(DBG_PRINTEXCEPTION_C, "DBG_PRINTEXCEPTION_C");
-// From corerror.xml
- 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(CEE_E_CVTRES_NOT_FOUND, "cvtres.exe not found.");
- 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_FIXUPSINEXE, "Attempt to load an unverifiable executable with fixups (IAT with more than 2 sections or a TLS section.)");
- 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_DEADLOCK, "Host detected a deadlock on a blocking operation.");
- CASE_OF(HOST_E_INVALIDOPERATION, "Invalid operation.");
- CASE_OF(HOST_E_CLRNOTAVAILABLE, "CLR has been disabled due to unrecoverable error.");
- CASE_OF(HOST_E_EXITPROCESS_THREADABORT, "Process exited due to ThreadAbort escalation.");
- CASE_OF(HOST_E_EXITPROCESS_ADUNLOAD, "Process exited due to AD Unload escalation.");
- CASE_OF(HOST_E_EXITPROCESS_TIMEOUT, "Process exited due to Timeout escalation.");
- CASE_OF(HOST_E_EXITPROCESS_OUTOFMEMORY, "Process exited due to OutOfMemory escalation.");
- CASE_OF(COR_E_MODULE_HASH_CHECK_FAILED, "The check of the module's hash failed.");
- CASE_OF(FUSION_E_REF_DEF_MISMATCH, "The located assembly's manifest definition does not match the assembly reference.");
- CASE_OF(FUSION_E_INVALID_PRIVATE_ASM_LOCATION, "The private assembly was located outside the appbase directory.");
- CASE_OF(FUSION_E_ASM_MODULE_MISSING, "A module specified in the manifest was not found.");
- CASE_OF(FUSION_E_PRIVATE_ASM_DISALLOWED, "A strongly-named assembly is required.");
- CASE_OF(FUSION_E_SIGNATURE_CHECK_FAILED, "Strong name signature could not be verified. The assembly may have been tampered with, or it was delay signed but not fully signed with the correct private key.");
- CASE_OF(FUSION_E_INVALID_NAME, "The given assembly name or codebase was invalid.");
- CASE_OF(FUSION_E_CODE_DOWNLOAD_DISABLED, "HTTP download of assemblies has been disabled for this appdomain.");
- CASE_OF(FUSION_E_HOST_GAC_ASM_MISMATCH, "Assembly in host store has a different signature than assembly in GAC.");
- CASE_OF(FUSION_E_LOADFROM_BLOCKED, "LoadFrom(), LoadFile(), Load(byte[]) and LoadModule() have been disabled by the host.");
- CASE_OF(FUSION_E_CACHEFILE_FAILED, "Failed to add file to AppDomain cache.");
- 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(FUSION_E_CONFIGURATION_ERROR, "The requested assembly name was neither found in the GAC nor in the manifest or the manifest's specified location is wrong.");
- CASE_OF(FUSION_E_MANIFEST_PARSE_ERROR, "Unexpected error while parsing the specified manifest.");
- CASE_OF(COR_E_LOADING_REFERENCE_ASSEMBLY, "Reference assemblies should not be loaded for execution. They can only be loaded in the Reflection-only loader context.");
- CASE_OF(COR_E_NI_AND_RUNTIME_VERSION_MISMATCH, "The native image could not be loaded, because it was generated for use by a different version of the runtime.");
- CASE_OF(COR_E_LOADING_WINMD_REFERENCE_ASSEMBLY, "Contract Windows Runtime assemblies cannot be loaded for execution. Make sure your application only contains non-contract Windows Runtime assemblies.");
- 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(SECURITY_E_INCOMPATIBLE_SHARE, "Loading this assembly would produce a different grant set from other instances.");
- CASE_OF(SECURITY_E_UNVERIFIABLE, "Unverifiable code failed policy check.");
- CASE_OF(SECURITY_E_INCOMPATIBLE_EVIDENCE, "Assembly already loaded without additional security evidence.");
- 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_MISSING_STRONGNAME, "Assembly is not strong named.");
- 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(CORSECATTR_E_BAD_ACTION, "Invalid security action code.");
- 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 must be supported to perform the requested operation.");
- 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_UNCOMPATIBLE_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_NO_IMAGE_AVAILABLE, "Couldn't find a native image.");
- CASE_OF(CORDBG_E_UNSUPPORTED_DELEGATE, "The delegate contains a delegate currently not supported by the API.");
- CASE_OF(PEFMT_E_64BIT, "File is PE32+.");
- CASE_OF(PEFMT_E_32BIT, "File is PE32");
- CASE_OF(NGEN_E_SYS_ASM_NI_MISSING, "NGen cannot proceed because Mscorlib.dll does not have a native image");
- CASE_OF(CLDB_E_INTERNALERROR, "CLDB_E_INTERNALERROR");
- CASE_OF(CLR_E_BIND_ASSEMBLY_VERSION_TOO_LOW, "The bound assembly has a version that is lower than that of the request.");
- CASE_OF(CLR_E_BIND_ASSEMBLY_PUBLIC_KEY_MISMATCH, "The assembly version has a public key token that does not match that of the request.");
- CASE_OF(CLR_E_BIND_IMAGE_UNAVAILABLE, "The requested image was not found or is unavailable.");
- CASE_OF(CLR_E_BIND_UNRECOGNIZED_IDENTITY_FORMAT, "The provided identity format is not recognized.");
- CASE_OF(CLR_E_BIND_ASSEMBLY_NOT_FOUND, "A binding for the specified assembly name was not found.");
- CASE_OF(CLR_E_BIND_TYPE_NOT_FOUND, "A binding for the specified type name was not found.");
- CASE_OF(CLR_E_BIND_SYS_ASM_NI_MISSING, "Could not use native image because Mscorlib.dll is missing a native image");
- CASE_OF(CLR_E_BIND_NI_SECURITY_FAILURE, "Native image was generated in a different trust level than present at runtime");
- CASE_OF(CLR_E_BIND_NI_DEP_IDENTITY_MISMATCH, "Native image identity mismatch with respect to its dependencies");
- 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_CROSSGEN_NO_IBC_DATA_FOUND, "Cannot compile using the PartialNgen flag because no IBC data was found.");
- 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;
-}
--- /dev/null
+using System;\r
+using System.Xml;\r
+using System.IO;\r
+using System.Collections.Generic;\r
+using System.Runtime.InteropServices;\r
+\r
+namespace generrmsg\r
+{\r
+ public class ErrMsg\r
+ {\r
+ public string SymName { get; set; }\r
+ public string Message { get; set; }\r
+ public int Code { get; set;}\r
+ }\r
+\r
+ public class GenErrMsg\r
+ {\r
+ // See https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-erref/0642cb2f-2075-4469-918c-4441e69c548a for more details\r
+ private const int SEVERITY_BIT_OFFSET = 31;\r
+ private const int FACILITY_BITS_OFFSET = 16;\r
+\r
+ public static void Main(string[] args)\r
+ {\r
+ if (args.Length < 1) {\r
+ Console.WriteLine("Usage: generrmessage XML-file [result-cpp-file] [result-h-file]");\r
+ return;\r
+ }\r
+ Dictionary<string, ErrMsg> errmsgs = new Dictionary<string, ErrMsg>();\r
+ string hresult = null;\r
+ string msg=null;\r
+ string symname = null;\r
+ string comment = null;\r
+ string sourcefilename = args[0];\r
+ string outputfilename = null;\r
+ string hfilename = null;\r
+ int FaciltyUrt=0x13; // The source of the error code is .NET CLR.\r
+ int SeveritySuccess=0;\r
+ int SeverityError=1;\r
+\r
+ int minSR = MakeHresult(SeveritySuccess,FaciltyUrt,0);\r
+ int maxSR = MakeHresult(SeveritySuccess,FaciltyUrt,0xffff);\r
+ int minHR = MakeHresult(SeverityError,FaciltyUrt,0);\r
+ int maxHR = MakeHresult(SeverityError,FaciltyUrt,0xffff);\r
+\r
+ if (string.IsNullOrEmpty(sourcefilename)) {\r
+ sourcefilename = "corerror.xml";\r
+ }\r
+ if (args.Length < 2) {\r
+ outputfilename = "errormessage.cpp";\r
+ } else {\r
+ outputfilename = args[1];\r
+ }\r
+ if (args.Length < 3) {\r
+ hfilename = "errormessage.h";\r
+ } else {\r
+ hfilename = args[2];\r
+ }\r
+ StreamWriter outfile = File.CreateText("temp.cpp");\r
+ StreamWriter hfile = File.CreateText("temp.h");\r
+ PrintHeader(outfile);\r
+ PrintHeaderH(hfile);\r
+ XmlTextReader reader = new XmlTextReader(sourcefilename);\r
+ \r
+ while (reader.Read()) {\r
+ switch(reader.NodeType) {\r
+\r
+ case XmlNodeType.Element:\r
+ if (reader.Name.ToString() == "HRESULT") {\r
+ hresult = reader.GetAttribute("NumericValue");\r
+ } else if (reader.Name.ToString() == "SymbolicName") {\r
+ symname = reader.ReadString();\r
+ } else if (reader.Name.ToString() == "Message") {\r
+ msg = reader.ReadString();\r
+ } else if (reader.Name.ToString() == "Comment") {\r
+ comment = reader.ReadString();\r
+ }\r
+ break;\r
+\r
+ case XmlNodeType.EndElement:\r
+ if (reader.Name.ToString() == "HRESULT") {\r
+ ErrMsg errmsg = new ErrMsg();\r
+ int code = 0;\r
+ if (hresult.StartsWith("0x") || hresult.StartsWith("0X")) {\r
+ code = int.Parse(hresult.Substring(2), System.Globalization.NumberStyles.HexNumber);\r
+ hresult = code.ToString();\r
+ }\r
+ errmsg.SymName = symname;\r
+ errmsg.Code = code;\r
+ if (!string.IsNullOrEmpty(msg)) {\r
+ errmsg.Message = msg;\r
+ } else if (!string.IsNullOrEmpty(comment)) {\r
+ int found = comment.IndexOf("//");\r
+ if (found > 0) {\r
+ errmsg.Message = "\"" + comment.Substring(found + 2) + "\"";\r
+ } else {\r
+ errmsg.Message = "\"" + comment + "\"";\r
+ }\r
+ } else {\r
+ errmsg.Message = "\"" + symname + "\"";\r
+ }\r
+ if (!errmsgs.ContainsKey(hresult)) {\r
+ errmsgs.Add(key: hresult, value: errmsg);\r
+ }\r
+ }\r
+ hresult = null;\r
+ msg = null;\r
+ comment = null;\r
+ symname = null;\r
+ break;\r
+ }\r
+ }\r
+ foreach (KeyValuePair<string, ErrMsg> it in errmsgs) {\r
+ ErrMsg errmsg = it.Value;\r
+ outfile.WriteLine(" CASE_OF({0}, {1});", errmsg.SymName, errmsg.Message);\r
+ if (errmsg.Code != 0) {\r
+ if ((errmsg.Code>minSR) && (errmsg.Code <= maxSR)) {\r
+ errmsg.Code = errmsg.Code & 0xffff;\r
+ hfile.WriteLine("#define " + errmsg.SymName + " SMAKEHR(0x" + errmsg.Code.ToString("x") + ")");\r
+ } else if ((errmsg.Code > minHR) && (errmsg.Code <= maxHR)) {\r
+ errmsg.Code = errmsg.Code & 0xffff;\r
+ hfile.WriteLine("#define " + errmsg.SymName + " EMAKEHR(0x" + errmsg.Code.ToString("x") + ")");\r
+ } else {\r
+ hfile.WriteLine("#define " + errmsg.SymName + " " + it.Key);\r
+ }\r
+ } else {\r
+ hfile.WriteLine("#define " + errmsg.SymName + " " + it.Key);\r
+ }\r
+ }\r
+ PrintFooter(outfile);\r
+ PrintFooterH(hfile);\r
+ outfile.Close();\r
+ hfile.Close();\r
+ System.IO.File.Move("temp.cpp", outputfilename);\r
+ System.IO.File.Move("temp.h", hfilename);\r
+ }\r
+\r
+ private static void PrintHeader(StreamWriter sw) {\r
+ sw.WriteLine("// Do not edit this file. It's generated from corerror.xml automatically");\r
+ sw.WriteLine("#include \"errormessage.h\"");\r
+ sw.WriteLine("");\r
+ sw.WriteLine("#define CASE_OF(CODE, STRERROR) case CODE: str=STRERROR; break;");\r
+ sw.WriteLine("");\r
+ sw.WriteLine("const char *errormessage(HRESULT hresult)");\r
+ sw.WriteLine("{");\r
+ sw.WriteLine(" const char *str;");\r
+ sw.WriteLine("");\r
+ sw.WriteLine(" switch (hresult)");\r
+ sw.WriteLine(" {");\r
+ sw.WriteLine("// From (winerror.h/palrt.h)"); \r
+ sw.WriteLine(" CASE_OF(S_OK, \"S_OK\");");\r
+ sw.WriteLine(" CASE_OF(S_FALSE, \"S_FALSE\");");\r
+ sw.WriteLine(" CASE_OF(E_NOTIMPL, \"E_NOTIMPL\");");\r
+ sw.WriteLine(" CASE_OF(E_UNEXPECTED, \"E_UNEXPECTED\");");\r
+ sw.WriteLine(" CASE_OF(E_HANDLE, \"E_HANDLE\");");\r
+ sw.WriteLine(" CASE_OF(E_ABORT, \"E_ABORT\");");\r
+ sw.WriteLine(" CASE_OF(E_FAIL, \"E_FAIL\");");\r
+ sw.WriteLine(" CASE_OF(E_PENDING, \"E_PENDING\");");\r
+ sw.WriteLine(" CASE_OF(DISP_E_PARAMNOTFOUND, \"DISP_E_PARAMNOTFOUND\");");\r
+ sw.WriteLine(" CASE_OF(DISP_E_TYPEMISMATCH, \"DISP_E_TYPEMISMATCH\");");\r
+ sw.WriteLine(" CASE_OF(DISP_E_BADVARTYPE, \"DISP_E_BADVARTYPE\");");\r
+ sw.WriteLine(" CASE_OF(DISP_E_OVERFLOW, \"DISP_E_OVERFLOW\");");\r
+ sw.WriteLine(" CASE_OF(CLASS_E_CLASSNOTAVAILABLE, \"CLASS_E_CLASSNOTAVAILABLE\");");\r
+ sw.WriteLine(" CASE_OF(CLASS_E_NOAGGREGATION, \"CLASS_E_NOAGGREGATION\");");\r
+ sw.WriteLine(" CASE_OF(CO_E_CLASSSTRING, \"CO_E_CLASSSTRING\");");\r
+ sw.WriteLine(" CASE_OF(MK_E_SYNTAX, \"MK_E_SYNTAX\");");\r
+ sw.WriteLine(" CASE_OF(STG_E_INVALIDFUNCTION, \"STG_E_INVALIDFUNCTION\");");\r
+ sw.WriteLine(" CASE_OF(STG_E_FILENOTFOUND, \"STG_E_FILENOTFOUND\");");\r
+ sw.WriteLine(" CASE_OF(STG_E_PATHNOTFOUND, \"STG_E_PATHNOTFOUND\");");\r
+ sw.WriteLine(" CASE_OF(STG_E_WRITEFAULT, \"STG_E_WRITEFAULT\");");\r
+ sw.WriteLine(" CASE_OF(STG_E_FILEALREADYEXISTS, \"STG_E_FILEALREADYEXISTS\");");\r
+ sw.WriteLine(" CASE_OF(STG_E_ABNORMALAPIEXIT, \"STG_E_ABNORMALAPIEXIT\");");\r
+ sw.WriteLine(" CASE_OF(NTE_BAD_UID, \"NTE_BAD_UID\");");\r
+ sw.WriteLine(" CASE_OF(NTE_BAD_HASH, \"NTE_BAD_HASH\");");\r
+ sw.WriteLine(" CASE_OF(NTE_BAD_KEY, \"NTE_BAD_KEY\");");\r
+ sw.WriteLine(" CASE_OF(NTE_BAD_LEN, \"NTE_BAD_LEN\");");\r
+ sw.WriteLine(" CASE_OF(NTE_BAD_DATA, \"NTE_BAD_DATA\");");\r
+ sw.WriteLine(" CASE_OF(NTE_BAD_SIGNATURE, \"NTE_BAD_SIGNATURE\");");\r
+ sw.WriteLine(" CASE_OF(NTE_BAD_VER, \"NTE_BAD_VER\");");\r
+ sw.WriteLine(" CASE_OF(NTE_BAD_ALGID, \"NTE_BAD_ALGID\");");\r
+ sw.WriteLine(" CASE_OF(NTE_BAD_FLAGS, \"NTE_BAD_FLAGS\");");\r
+ sw.WriteLine(" CASE_OF(NTE_BAD_TYPE, \"NTE_BAD_TYPE\");");\r
+ sw.WriteLine(" CASE_OF(NTE_BAD_KEY_STATE, \"NTE_BAD_KEY_STATE\");");\r
+ sw.WriteLine(" CASE_OF(NTE_BAD_HASH_STATE, \"NTE_BAD_HASH_STATE\");");\r
+ sw.WriteLine(" CASE_OF(NTE_NO_KEY, \"NTE_NO_KEY\");");\r
+ sw.WriteLine(" CASE_OF(NTE_NO_MEMORY, \"NTE_NO_MEMORY\");");\r
+ sw.WriteLine(" CASE_OF(NTE_SIGNATURE_FILE_BAD, \"NTE_SIGNATURE_FILE_BAD\");");\r
+ sw.WriteLine(" CASE_OF(NTE_FAIL, \"NTE_FAIL\");");\r
+ sw.WriteLine(" CASE_OF(CRYPT_E_HASH_VALUE, \"CRYPT_E_HASH_VALUE\");");\r
+ sw.WriteLine(" CASE_OF(TYPE_E_SIZETOOBIG, \"TYPE_E_SIZETOOBIG\");");\r
+ sw.WriteLine(" CASE_OF(TYPE_E_DUPLICATEID, \"TYPE_E_DUPLICATEID\");");\r
+ sw.WriteLine(" CASE_OF(INET_E_CANNOT_CONNECT, \"INET_E_CANNOT_CONNECT\");");\r
+ sw.WriteLine(" CASE_OF(INET_E_RESOURCE_NOT_FOUND, \"INET_E_RESOURCE_NOT_FOUND\");");\r
+ sw.WriteLine(" CASE_OF(INET_E_OBJECT_NOT_FOUND, \"INET_E_OBJECT_NOT_FOUND\");");\r
+ sw.WriteLine(" CASE_OF(INET_E_DATA_NOT_AVAILABLE, \"INET_E_DATA_NOT_AVAILABLE\");");\r
+ sw.WriteLine(" CASE_OF(INET_E_DOWNLOAD_FAILURE, \"INET_E_DOWNLOAD_FAILURE\");");\r
+ sw.WriteLine(" CASE_OF(INET_E_CONNECTION_TIMEOUT, \"INET_E_CONNECTION_TIMEOUT\");");\r
+ sw.WriteLine(" CASE_OF(INET_E_UNKNOWN_PROTOCOL, \"INET_E_UNKNOWN_PROTOCOL\");");\r
+ if (!System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) {\r
+ // The following codes don't exist on Windows platform and should not be generated there \r
+ sw.WriteLine(" CASE_OF(CTL_E_OVERFLOW, \"CTL_E_OVERFLOW\");");\r
+ sw.WriteLine(" CASE_OF(CTL_E_OUTOFMEMORY, \"CTL_E_OUTOFMEMORY\");");\r
+ sw.WriteLine(" CASE_OF(CTL_E_DIVISIONBYZERO, \"CTL_E_DIVISIONBYZERO\");");\r
+ sw.WriteLine(" CASE_OF(CTL_E_OUTOFSTACKSPACE, \"CTL_E_OUTOFSTACKSPACE\");");\r
+ sw.WriteLine(" CASE_OF(CTL_E_FILENOTFOUND, \"CTL_E_FILENOTFOUND\");");\r
+ sw.WriteLine(" CASE_OF(CTL_E_DEVICEIOERROR, \"CTL_E_DEVICEIOERROR\");");\r
+ sw.WriteLine(" CASE_OF(CTL_E_PERMISSIONDENIED, \"CTL_E_PERMISSIONDENIED\");");\r
+ sw.WriteLine(" CASE_OF(CTL_E_PATHFILEACCESSERROR, \"CTL_E_PATHFILEACCESSERROR\");");\r
+ sw.WriteLine(" CASE_OF(CTL_E_PATHNOTFOUND, \"CTL_E_PATHNOTFOUND\");");\r
+ sw.WriteLine(" CASE_OF(DBG_PRINTEXCEPTION_C, \"DBG_PRINTEXCEPTION_C\");");\r
+ } // end if\r
+ sw.WriteLine("//from corerror.h");\r
+ }\r
+\r
+ private static void PrintFooter(StreamWriter sw) {\r
+ sw.WriteLine(" default:"); \r
+ sw.WriteLine(" str = \"Unknown HRESULT code\";");\r
+ sw.WriteLine(" break;");\r
+ sw.WriteLine(" }");\r
+ sw.WriteLine(" return str;");\r
+ sw.WriteLine("}");\r
+ }\r
+ \r
+ private static void PrintHeaderH(StreamWriter sw) {\r
+ sw.WriteLine("// Licensed to the .NET Foundation under one or more agreements.");\r
+ sw.WriteLine("// The .NET Foundation licenses this file to you under the MIT license.");\r
+ sw.WriteLine("// See the LICENSE file in the project root for more information.");\r
+ sw.WriteLine();\r
+ sw.WriteLine("#ifndef __COMMON_LANGUAGE_RUNTIME_HRESULTS__");\r
+ sw.WriteLine("#define __COMMON_LANGUAGE_RUNTIME_HRESULTS__");\r
+ sw.WriteLine();\r
+ sw.WriteLine("#include <winerror.h>");\r
+ sw.WriteLine();\r
+ sw.WriteLine();\r
+ sw.WriteLine("//");\r
+ sw.WriteLine("//This file is AutoGenerated -- Do Not Edit by hand!!!");\r
+ sw.WriteLine("//");\r
+ sw.WriteLine("//Add new HRESULTS along with their corresponding error messages to");\r
+ sw.WriteLine("//corerror.xml");\r
+ sw.WriteLine("//");\r
+ sw.WriteLine();\r
+ sw.WriteLine("#ifndef FACILITY_URT");\r
+ sw.WriteLine("// The source of the error code is .NET CLR.");\r
+ sw.WriteLine("// See https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-erref/0642cb2f-2075-4469-918c-4441e69c548a for more details"); \r
+ sw.WriteLine("#define FACILITY_URT 0x13");\r
+ sw.WriteLine("#endif");\r
+ sw.WriteLine("#ifndef EMAKEHR");\r
+ sw.WriteLine("#define SMAKEHR(val) MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_URT, val)");\r
+ sw.WriteLine("#define EMAKEHR(val) MAKE_HRESULT(SEVERITY_ERROR, FACILITY_URT, val)");\r
+ sw.WriteLine("#endif");\r
+ sw.WriteLine();\r
+ }\r
+\r
+ private static void PrintFooterH(StreamWriter sw) {\r
+ sw.WriteLine();\r
+ sw.WriteLine("#endif // __COMMON_LANGUAGE_RUNTIME_HRESULTS__");\r
+ }\r
+\r
+ private static int MakeHresult(int sev, int fac, int code) {\r
+ return ((sev<<SEVERITY_BIT_OFFSET) | (fac<<FACILITY_BITS_OFFSET) | (code));\r
+ }\r
+ }\r
+}\r