in DbgProvider/public/Debugger/TypeInfo/DbgTypeInfo.cs [101:192]
private static DbgNamedTypeInfo _GetTypeInfoForDbgNativeType( DbgEngDebugger debugger,
ulong moduleBase,
uint typeId,
DbgTarget target )
{
switch( (DbgNativeType) typeId )
{
case DbgNativeType.DNTYPE_VOID:
return new DbgBaseTypeInfo( debugger, moduleBase, typeId, BasicType.btVoid, 0, target );
case DbgNativeType.DNTYPE_CHAR:
return new DbgBaseTypeInfo( debugger, moduleBase, typeId, BasicType.btChar, 1, target );
case DbgNativeType.DNTYPE_WCHAR_T:
return new DbgBaseTypeInfo( debugger, moduleBase, typeId, BasicType.btWChar, 2, target );
case DbgNativeType.DNTYPE_INT8:
return new DbgBaseTypeInfo( debugger, moduleBase, typeId, BasicType.btInt, 1, target );
case DbgNativeType.DNTYPE_INT16:
return new DbgBaseTypeInfo( debugger, moduleBase, typeId, BasicType.btInt, 2, target );
case DbgNativeType.DNTYPE_INT32:
return new DbgBaseTypeInfo( debugger, moduleBase, typeId, BasicType.btInt, 4, target );
case DbgNativeType.DNTYPE_INT64:
return new DbgBaseTypeInfo( debugger, moduleBase, typeId, BasicType.btInt, 8, target );
case DbgNativeType.DNTYPE_UINT8:
return new DbgBaseTypeInfo( debugger, moduleBase, typeId, BasicType.btUInt, 1, target );
case DbgNativeType.DNTYPE_UINT16:
return new DbgBaseTypeInfo( debugger, moduleBase, typeId, BasicType.btUInt, 2, target );
case DbgNativeType.DNTYPE_UINT32:
return new DbgBaseTypeInfo( debugger, moduleBase, typeId, BasicType.btUInt, 4, target );
case DbgNativeType.DNTYPE_UINT64:
return new DbgBaseTypeInfo( debugger, moduleBase, typeId, BasicType.btUInt, 8, target );
case DbgNativeType.DNTYPE_FLOAT32:
return new DbgBaseTypeInfo( debugger, moduleBase, typeId, BasicType.btFloat, 4, target );
case DbgNativeType.DNTYPE_FLOAT64:
return new DbgBaseTypeInfo( debugger, moduleBase, typeId, BasicType.btFloat, 8, target );
case DbgNativeType.DNTYPE_FLOAT80:
return new DbgBaseTypeInfo( debugger, moduleBase, typeId, BasicType.btFloat, 10, target );
case DbgNativeType.DNTYPE_BOOL:
return new DbgBaseTypeInfo( debugger, moduleBase, typeId, BasicType.btBool, 1, target );
case DbgNativeType.DNTYPE_LONG32:
return new DbgBaseTypeInfo( debugger, moduleBase, typeId, BasicType.btLong, 4, target );
case DbgNativeType.DNTYPE_ULONG32:
return new DbgBaseTypeInfo( debugger, moduleBase, typeId, BasicType.btULong, 4, target );
case DbgNativeType.DNTYPE_HRESULT:
return new DbgBaseTypeInfo( debugger, moduleBase, typeId, BasicType.btHresult, 4, target );
case DbgNativeType.DNTYPE_WCHAR:
return new DbgBaseTypeInfo( debugger, moduleBase, typeId, BasicType.btWChar, 2, target );
case DbgNativeType.DNTYPE_CLR_TYPE:
throw new NotImplementedException();
case DbgNativeType.DNTYPE_MSIL_METHOD:
throw new NotImplementedException();
case DbgNativeType.DNTYPE_CLR_METHOD:
throw new NotImplementedException();
case DbgNativeType.DNTYPE_CLR_INTERNAL:
throw new NotImplementedException();
case DbgNativeType.DNTYPE_PTR_FUNCTION32:
throw new NotImplementedException();
case DbgNativeType.DNTYPE_PTR_FUNCTION64:
throw new NotImplementedException();
case DbgNativeType.DNTYPE_NO_TYPE:
return new DbgBaseTypeInfo( debugger, moduleBase, typeId, BasicType.btNoType, 0, target );
case DbgNativeType.DNTYPE_ERROR:
return new DbgBaseTypeInfo( debugger, moduleBase, typeId, BasicType.btNoType, 0, target );
default:
throw new NotImplementedException( Util.Sprintf( "Unknown DbgNativeType: {0}", typeId ) );
} // end switch( typeId )
} // end _GetTypeInfoForDbgNativeType()