Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1199 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [Linux prog syst] Exception à traiter dans une autre stack

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Linux prog syst] Exception à traiter dans une autre stack

n°309871
biniou
Posté le 14-02-2003 à 18:51:28  profilanswer
 

Je cherche à implémenter un try catch sous Linux (2.4.18, gcc 2.96) de la même manière que sous Windows, à savoir traiter l'exception capturée dans une nouvelle stack, le but de ce traitement étant de restaurer la stack du process parti en exception dans l'état où elle se trouvait au moment du try...
 
pour l'instant, l'exception est traitée sur la même stack, ce qui me met un bordel monstre dans la stack en question. Je ne peux donc pas m'assurer que la stack est remise en état à la fin de l'exécution du handler.
 
Le fait de placer le handler en précisant l'option SA_ONSTACK (je raccourci l'explication là....) ne résoud pas le pb, bien qu'à priori ça devrait faire la chose que j'attends. Si qqun a déjà expérimenté la chose avec succès, merci de m'éclaicir...

mood
Publicité
Posté le 14-02-2003 à 18:51:28  profilanswer
 

n°310541
nraynaud
lol
Posté le 16-02-2003 à 00:32:45  profilanswer
 

biniou a écrit :

Je cherche à implémenter un try catch sous Linux (2.4.18, gcc 2.96) de la même manière que sous Windows, à savoir traiter l'exception capturée dans une nouvelle stack, le but de ce traitement étant de restaurer la stack du process parti en exception dans l'état où elle se trouvait au moment du try...
 
pour l'instant, l'exception est traitée sur la même stack, ce qui me met un bordel monstre dans la stack en question. Je ne peux donc pas m'assurer que la stack est remise en état à la fin de l'exécution du handler.
 
Le fait de placer le handler en précisant l'option SA_ONSTACK (je raccourci l'explication là....) ne résoud pas le pb, bien qu'à priori ça devrait faire la chose que j'attends. Si qqun a déjà expérimenté la chose avec succès, merci de m'éclaicir...
 


 
Perso, pour pocketsmalltalk, je "pliait" la pile de façon qu'à la sortie du handler d'exception le contexte soit celui du handler.
 
exemple :  


Class>>#method
[action] on: Exception do : [ :e | handling]
 
évolution de la pile :
  -------------------------
0 |#method                |
  -------------------------
1 |#on:do:                |
  -------------------------
2 |#value                 |
  -------------------------
3 |action1                |
  -------------------------
4 |action2                |
  -------------------------
5 |action3                |
  -------------------------
6 |#signal                |
  -------------------------
 
 
devient :
  -------------------------
0 |#method                |
  -------------------------
1 |#on:do:                |
  -------------------------
2 |#signal                |
  -------------------------
3 |[handling]#value       |
  -------------------------

 
#signal est l'équivalent de throw, #on:do: est l'équivalent de try/catch, le :e est l'exception qui s'est produite et les [] sont des blocs de code exécutés par #value
 
Mais j'ai tout fait à l'intuite, quel est l'intérêt d'utiliser une deuxième pile plutôt que d'exécuter le handler tout en bas ?
 
edit : leur mère les smileys on peut pas les virer à l'édit ?


Message édité par nraynaud le 16-02-2003 à 00:35:12

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [Linux prog syst] Exception à traiter dans une autre stack

 

Sujets relatifs
[C][linux] Connaitre le répertoire contenant l'éxecutablepb!!!! unhandled exception..... : access violation
Package javax.swing non trouvé en compilant sous linuxLancer un prog ou ouvrir un fichier à partir de VB?
pb avec allegro sous linuxCommunication d'une exception entre une servlet et une applet
les signaux sous linuxfaire de l'assembleur (x86) sous linux, c'est possible ?
prog de la carte PCL 812[Linux-C] Convertion entier vers chaine ??
Plus de sujets relatifs à : [Linux prog syst] Exception à traiter dans une autre stack


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR