elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Capturar segfault con try/catch en C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Capturar segfault con try/catch en C++  (Leído 1,469 veces)
geeke

Desconectado Desconectado

Mensajes: 93


Ver Perfil
Capturar segfault con try/catch en C++
« en: 21 Octubre 2016, 01:05 am »

 Este hilo lo creo a modo de aclaracion en referencia a otro hilo donde se discutio el mismo tema, en el cual el moderador de turno brindo información no del todo acertada, luego de manera arbitraria procedio a bloquear el hilo sin razon alguna. Lo cual me parecio injusto, ya que cerro la posibilidad de que otro usuario pueda opinar al respecto.

  En lo referente al tema, C++ dispone de una lista de excepciones establecidas que son lanzadas por throw producto de algun error, hay que dejar en claro que try/catch solo puede capturar excepciones lanzadas por throw, por tanto obviamente un segfault, division por cero no son inherentes al C++ estandar, es una situacion que se produce de manera inesperada a nivel hardware, por lo tanto ya es dependiente de cada OS y compilador la manera controlarlos.

Mas info: http://stackoverflow.com/questions/1823721/how-to-catch-the-null-pointer-exception

 Otra cosa es usar alguna extension del compilador para interpretar un segfault como una excepcion de C++ estandar (lo cual no es nada portable) como es el caso de Visual C++:

Citar
Exception Handling Model

You can set an exception handling model for your Visual C++ compiler with /EHs (or EHsc) to specify synchronous exception handling model, or /EHa to specify asynchronous exception handling model. The asynchronous model can be used to force the try{}catch(){} construction to catch both SEH and C++ typed exceptions (the same effect can be achieved with the _set_se_translator() function). If a synchronous model is utilized, SEH exceptions are not caught by the try{}catch(){} construction. Asynchronous model was the default in previous versions of Visual C++, but the synchronous one is the default in the newer versions.

Mas info: http://www.codeproject.com/Articles/207464/Exception-Handling-in-Visual-Cplusplus

https://msdn.microsoft.com/en-us/library/1deeycx5(v=vs.80).aspx

  






« Última modificación: 21 Octubre 2016, 04:21 am por geeke » En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Capturar segfault con try/catch en C++
« Respuesta #1 en: 21 Octubre 2016, 08:21 am »

No puedes usar los bloques try/catch para capturar un segmentation fault, porque no es una excepción mas bien es una señal que el sistema operativo envía como consecuencia al intentar acceder en alguna zona de memoria no permitida. Además no veo razón para hacer esto, porque continuar el programa después no es posible se invocaría comportamiento indefinido y esto no es nada seguro.

Este hilo no aclara ni aporta nada que se no haya dicho, ni que no se pudiera encontrar en Google con 5 minutos de busqueda en base a lo ya dicho, en el hilo bloqueado.

PD. La proxima vez no abras otro hilo cuando hay uno ya bloqueado sobre el tema, si estas tan desperado por escribir algo me mandas un mensaje y te desbloqueo el hilo, gracias.


En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
try catch, bucle
Java
leogtz 5 11,721 Último mensaje 13 Febrero 2010, 06:45 am
por 43H4FH44H45H4CH49H56H45H
try catch en c++ (dev c++)
Programación C/C++
JulCesa 3 5,222 Último mensaje 27 Noviembre 2011, 19:21 pm
por naderST
Pregunta con Try y catch?
Java
Slider324 3 2,443 Último mensaje 23 Diciembre 2012, 02:07 am
por Slider324
problema implementacion try... catch
Java
andrex.125 3 2,444 Último mensaje 25 Septiembre 2013, 17:21 pm
por 1mpuls0
Uso de try-catch en Java
Java
++c 4 3,967 Último mensaje 10 Octubre 2014, 16:05 pm
por Pablo Videla
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines