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

  FORUM HardWare.fr
  Programmation
  C++

  Debugging avance maison : gestion du callstack et dumpage de la pile

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Debugging avance maison : gestion du callstack et dumpage de la pile

n°272190
Joel F
Real men use unique_ptr
Posté le 18-12-2002 à 15:37:18  profilanswer
 

Voila bon bref, j'essaye de me monter un systeme d'exception/error trappingn un peu couillu et j'aurais besoin de deux trucs que j'arrive pas a mettre en place :
 
1. Comment gérer une pile d'appel de fonctions ? A sabvoir lorsque une errreur est attrape, comment savoir dans quele fonction j'etais et d'ou je viens ?
 
2. dumpez le contenu binaire de la pile a un instant donné ?
 
Le tout sous Win32 et/ou le plus plateform free possible
merci :)
 
 

mood
Publicité
Posté le 18-12-2002 à 15:37:18  profilanswer
 

n°272194
nraynaud
lol
Posté le 18-12-2002 à 15:57:35  profilanswer
 

[citation=272190,1][nom]Joel F a écrit[/nom]Voila bon bref, j'essaye de me monter un systeme d'exception/error trappingn un peu couillu et j'aurais besoin de deux trucs que j'arrive pas a mettre en place :
 
1. Comment gérer une pile d'appel de fonctions ? A sabvoir lorsque une errreur est attrape, comment savoir dans quele fonction j'etais et d'ou je viens ?
 
2. dumpez le contenu binaire de la pile a un instant donné ?
[/quote]
 
tu prends l'adresse de la fonction courante et tu remontes par tranches de 32 bits.
Comme ta pile n'est pas structurée, t'es dans la merde pour savoir ce qu'il y a dedans. Bon courage
 

n°272250
Joel F
Real men use unique_ptr
Posté le 18-12-2002 à 17:30:34  profilanswer
 

Bref c pas gagner ...
Pour le call stack, en fait je gere une liste chaine de string contenant le nom de la fonction.
A chaque fonction je commence par
 

Code :
  1. void Classe::MaMethode()
  2. {
  3.    Logger::EnterMethod( "Classe::MaMethode" );
  4.    // faire semblant de travailler
  5.   Logger::LeaveMethod();
  6. }


 
En cas d'exception je sort un truc du style :
 

Code :
  1. try
  2. {
  3.    Classe maclasse;
  4.    maclasse.MaMethode();
  5. }
  6. catch( ... )
  7. {
  8.    Logger::Unwind()
  9.    cout << "Exception non traitée" << endl;
  10.    Logger::Dump();
  11. }


 
Mais bon pour la stack je vois pas, pourtant ya plein d'appli ki le font ...


Message édité par Joel F le 18-12-2002 à 17:31:00
n°272291
nraynaud
lol
Posté le 18-12-2002 à 18:32:25  profilanswer
 

Joel F a écrit :

Bref c pas gagner ...
Pour le call stack, en fait je gere une liste chaine de string contenant le nom de la fonction.
A chaque fonction je commence par
 
 
 
Mais bon pour la stack je vois pas, pourtant ya plein d'appli ki le font ...
 


 
elles instrumentent la pile et utilisent un truc du processeur qui leur donne la main à chaque appel de fonction.
avec les info filée par le compilo (-g ou -g3) elles te donnent de l'info


Message édité par nraynaud le 18-12-2002 à 18:36:01

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

  Debugging avance maison : gestion du callstack et dumpage de la pile

 

Sujets relatifs
Gestion des exceptions dans les Servlets[php] erreur mais ou ? je deviens fou merci d avance
JTable, selection de cellule et gestion d'évènement[assembleur] Gestion postion souris + Affichage [Need Help] -> Page 2
[sql] Tester ses requetes à la maison ??[PHP + JS] cacher des id inconnus à l'avance
[Fork] Gestion des childs - Besoin d'aides :)Gestion des threads en Perl
[JS] Gestion des cookies[VBA] Pile d'appel
Plus de sujets relatifs à : Debugging avance maison : gestion du callstack et dumpage de la pile


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