IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

gestion des exceptions avec signal : perf ?


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    106
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 106
    Par d�faut gestion des exceptions avec signal : perf ?
    Bonjour,

    � de tr�s rares occasions, sur certaines configurations exotiques mon programme est confront� � des crashs ind�pendant de mon code, qui sont due soit � un driver audio bugg�, soit � un driver OpenGL bugg�.
    Par exemple c'est arriv� avec le driver audio virtuel DFX Audio Enhancer, et avec un vieux driver AMD de 2010.
    Dans ce genre de cas, plut�t qu'un crash brutal avec un message d'erreur syst�me j'aimerai afficher un message � l'utilisateur proposant un diagnostique possible.
    Pour �a j'ai trouv� la fonction signal:
    http://www.cplusplus.com/reference/csignal/signal/
    Qui semble faire parfaitement son office, puisque j'arrive maintenant � intercepter les rares cas qui me posaient probl�me.

    Cependant mon application fait de nombreux calculs en temps r�el, et je voudrais �tre sur que l'interception de ces exceptions ne provoque pas de ralentissement du code en g�n�ral, c'est � dire que �a n'induit pas un monitoring constant mais juste un d�clenchement au moment m�me de l'exception. Savez vous ce qu'il en est ? Avez vous des infos la dessus ?

    Merci !

  2. #2
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 503
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 503
    Par d�faut
    J'esp�re que vous n'utilisez pas cette cochonnerie sur plateforme Windows.
    Sinon, il n'y a pas d'overhead li� � cette fonctionnalit� car cela se contente de mettre un pointeur dans une table syst�me et d'appeler ce pointeur qu'au moment du signal.

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    106
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 106
    Par d�faut
    Super, merci pour la r�ponse. Bien que je ne vois pas trop le rapport avec Windows; c'est un programme multiplateforme Windows/OS X, et signal() semble intercepter les exceptions comme il faut sur Windows.

  4. #4
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 503
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 503
    Par d�faut
    Signal n'intercepte pas les exceptions.
    L'interception remonte vers l'OS, qui, on fonction de sa configuration, utilise une table planqu�e dans les donn�es syst�me du processus.
    D�j�, il y a plus de 20 ans, c'�tait le foutoir entre les Unix qui n'acceptaient pas la r�entrance dans ces handlers et les autres qui se coltinaient un masque de bit pour le blocage temporaire des signaux, signal par signal.

    J'esp�re que ce foutoir c'est un peu r�sorb�, mais d�j� que ces signaux n'ont jamais correctement fonctionn�s sous Windows pr�-NT, avec le sous-syst�me tarte � la cr�me de POSIX sous Windows NT (pour notre cher Oncle Sam), c'est le genre de trucs qui ne fonctionnera tr�s probablement que dans ce sous-syst�me des plus anecdotique.

    Sous Windows, ce n'est clairement pas solution la plus simple et la plus puissante :
    WER
    https://msdn.microsoft.com/en-us/lib...=vs.85%29.aspx

  5. #5
    Membre confirm�
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    106
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 106
    Par d�faut
    Ah.. Quoi qu'il en soit, quand je lui fournis un driver foireux qui fait crasher mon application, le signal SIGABRT/SIGILL/SIGSEGV est bien redirig� vers ma fonction pr�d�finie, du coup �a fait ce que je voulais. Du moment que �a n'impacte pas les perfs du reste de l'application, �a me va

Discussions similaires

  1. Gestion des exceptions avec JSF RI 1.2
    Par darsky dans le forum JSF
    R�ponses: 5
    Dernier message: 12/11/2008, 12h25
  2. Gestion des exceptions avec le plugin ErrorHandler ?
    Par AzAt0th dans le forum Zend Framework
    R�ponses: 7
    Dernier message: 07/01/2008, 14h31
  3. [POO] Gestion des exception avec php4
    Par mulot49 dans le forum Langage
    R�ponses: 1
    Dernier message: 26/04/2007, 10h18
  4. R�ponses: 2
    Dernier message: 01/12/2006, 19h55
  5. [vb.net]Gestion des exceptions avec les web services
    Par mvr dans le forum Windows Forms
    R�ponses: 2
    Dernier message: 05/12/2005, 22h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo