Traiter les signaux SIGSEGV et SIGBUS

Traiter les signaux SIGSEGV et SIGBUS - C++ - Programmation

Marsh Posté le 16-02-2004 à 23:49:51    

Salut
Voila g un programme en C++ qui est fait en gros pour tester des algos betas. Ces algos sont des classes, bref tout est C++. Et qui dit beta dit que ca plante SEGV par exemple. Et je veux pas que ca me plante ma structure d'accueil.
Est ce propre de mettre un handler sur SIGSEGV qui se contente de faire throw SEGVException ? J'ai essayé ca marche mais je suis pas sur que mon process est dans un état normal apres ca.
Dans le man de Solaris je n'ai rien vu à ce propos (le chapitre sur les signaux est en C ceulement) et dans la MSDN ca a pas l'air trop conseillé.
 
Y a t il un moyen propre de gérer ces signaux en C++ ?
Merci pour votre aide

Reply

Marsh Posté le 16-02-2004 à 23:49:51   

Reply

Marsh Posté le 16-02-2004 à 23:55:43    

corrige tes bugs pluto

Reply

Marsh Posté le 17-02-2004 à 00:08:28    

non je corrige pas mes bugs parce que c pas les miens
 
le truc est une plateforme de test d'algos béta développés par une autre équipe, il est donc nominal que des erreurs se produisent

Reply

Marsh Posté le 17-02-2004 à 00:16:18    

oui mais SIGSEV et SIGBUS, c'est loin d'être des erreurs, se sont des signaux d'arrêts. Après un tel évènement, il n'est pas possible  de présumer de l'intégrité du système. Surtout que le SIGSEV peut ne pas intervenir tout de suite. tes algos peuvent avoir écrit des romans avec de provoquer une erreur de segmentation. bref, le SIGSEV, c'est pas un garde fou. tu risques à tous les coups de déclencher une réaction en chaîne et de corrompre encore plus tes données.
tu ferais mieux de tester du code non-surs dans des processus indépendants

Reply

Marsh Posté le 17-02-2004 à 19:21:21    

ouais ok j'avais pas trop envie de faire des process séparés mais bon finalement je pense que tu as raison. Je v faire ca

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed