es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

referencia indefinida a `__ubsan_handle_out_of_bounds_abort’

Mientras compilo el código con el indicador de compilador -fsanitize=bounds para clang-4.0, parece que obtengo este error de enlace aunque no hay acceso fuera de límites que el código esté realizando.
¿Alguna ayuda aquí cuándo lanza el compilador este error – referencia indefinida a __ubsan_handle_out_of_bounds_abort?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error “referencia indefinida a __ubsan_handle_out_of_bounds_abort” está relacionado con el uso de la opción -fsanitize=bounds en el compilador clang-4.0. Esta opción permite verificar el acceso fuera de los límites en tiempo de ejecución, utilizando una biblioteca de tiempo de ejecución llamada Undefined Behavior Sanitizer (UBSan).

    El mensaje de error indica que el enlazador no puede encontrar una referencia a una función llamada __ubsan_handle_out_of_bounds_abort, que está definida en la biblioteca de tiempo de ejecución de UBSan. Esto sugiere que la biblioteca de UBSan no se está enlazando correctamente en el proceso de compilación.

    Una posible causa de este error es que la biblioteca de UBSan no se está incluyendo en la etapa de enlace de compilación. Para resolver el problema, asegúrese de que la biblioteca de UBSan se esté incluyendo en el comando del enlazador, por ejemplo, agregando -fsanitize=bounds a las opciones de enlace.

    Otra posibilidad es que haya una discrepancia entre la versión de la biblioteca de UBSan y la versión de clang que se está utilizando. En este caso, puede ser necesario actualizar la biblioteca de UBSan o utilizar una versión diferente de clang.

    También es importante tener en cuenta que el mensaje de error puede ser engañoso, ya que no siempre indica un acceso fuera de los límites real en el código. Es posible que la biblioteca de tiempo de ejecución de UBSan genere falsos positivos en algunos casos. En dichos casos, puede ser necesario desactivar la verificación de límites o investigar más a fondo para determinar si el error es genuino.

Comments are closed.