Estoy tratando de implementar el manejo de excepciones para un sistema operativo incorporado y estoy atascado en cómo detectar el tipo de la "excepción" arrojada (para seleccionar el controlador apropiado).¿Cuál es la implementación más simple de RTTI para C++?
Las partes que guardan y restauran el contexto del manejo de excepciones ya están hechas, pero no puedo tener identificadores específicos ya que no puedo detectar el tipo de 'excepción' arrojada. La implementación estándar de RTTI de C++ es demasiado dependiente de otras bibliotecas y por esa razón actualmente estoy considerando que no está disponible.
Considerando que mi objetivo es un sistema integrado y por esa razón no puedo crear mucho código, ¿cuál es la implementación más pequeña de "Información de tipo de tiempo de ejecución" que puedo obtener (o crear)?
- Editar -
no estoy trabajando en el compilador, es una IA32-g ++.
¿Está escribiendo/modificando el compilador o el tiempo de ejecución del idioma, o dónde exactamente va a encajar esto? Un poco más de contexto sería bueno. – jalf
Si tiene memoria limitada, no debe habilitar RTTI, o incluso tratar de usar excepciones.Mejor piense en un enfoque alternativo. –
Si se ha lanzado una excepción, de ninguna manera ha codificado la información del tipo de excepción, por lo que no veo por qué necesita algún método "alternativo". Como dijo jalf, danos más información sobre lo que realmente estás tratando de hacer. –