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

Langage Delphi Discussion :

Faire un programme qui plante et noter le plantage


Sujet :

Langage Delphi

  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2002
    Messages : 299
    Points : 373
    Points
    373
    Par défaut Faire un programme qui plante et noter le plantage
    Bonjour,

    Ma demande est un peu particulière : le but est de faire le programme le plus simple possible qui plante affreusement et qui réveille le DrWatson (ou tout autre débugueur résident).

    C'est idiot mais je veux tester ce qui est journalisé en cas de plantage (pas d'exception, mais d'une fermeture du programme avec envoi à Microsoft), et si parfois mes programmes plantent, aucun moyen que ce soit systématique.

    Additionnelement, quelles sont les informations ou les fichiers à ajouter pour que le DrWatson (ou un autre de votre convenance) soit plus précis dans ses rapports de plantage?

    Merci

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Mai 2002
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Mai 2002
    Messages : 114
    Points : 156
    Points
    156
    Par défaut
    Pour faire planter un prog Delphi :

    Faire une classe toto. Instancier un objet de cette classe et l'utiliser sans avoir fait appel à son constructeur... C'est systématique!

    C'est une erreur que je faisais très souvent au début et qui me prenais toujours beaucoup de temps à résoudre... Donc maintenant je m'en souviens très bien.

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2002
    Messages : 299
    Points : 373
    Points
    373
    Par défaut
    Oui, sauf que ça se contente de provoquer une exception, une fenêtre popup qui engueule, et rien d'autre. Le programme en lui même ne plante pas, qu'il soit lancé via l'IDE delphi ou directement via son exécutable.
    Et donc un debugueur type Watson ne voit rien.

    Faut vraiment que le programme plante sévère, sans rien pouvoir faire.

  4. #4
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    Je crois me souvenir qu'il faut affecter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.OnException := TaMéthode
    Ansi, les exceptions qui remontent passent par là et tu peux les gérer (log, message etc...)

    bon courage
    Section Delphi
    La mine d'or: La FAQ, les Sources

    Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
    Notre revanche ? l'inverse est aussi vrai ;-)

  5. #5
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2002
    Messages : 299
    Points : 373
    Points
    373
    Par défaut
    Citation Envoyé par TicTacToe
    Je crois me souvenir qu'il faut affecter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.OnException := TaMéthode
    Ansi, les exceptions qui remontent passent par là et tu peux les gérer (log, message etc...)

    bon courage
    Mais je ne veux pas gérer les exceptions, je veux que le programme PLANTE, c'est donc tout le contraire, non?

    Mon problème : j'ai un programme qui plante de manière aléatoire, et malgré des journaux qui mémorisent l'activité et les exceptions, je n'arrive pas à reproduire le plantage. Quand je dis qu'il plante, c'est qu'il s'arrête sans rien dire, plantage mortel pour lui, aucun message d'erreur. Il s'arrete simplement.

    Le système Windows le détecte et propose d'envoyer des infos de debug à M$. Le Dr Watson (logiciel debugueur résident Microsoft) capte des infos, mais pas assez. Donc pour le tester, j'ai besoin d'un programme qui plante, d'où ma question présente.

  6. #6
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    violation d'accès direct avec ce code. (et fenetre windows 'envoyer etc...' )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TForm1.FormCreate(Sender: TObject);
    begin
         destroy;
    end;
    c'est vrai que les plantages brutaux, on en a tous eu, mais en général on les garde pas
    Section Delphi
    La mine d'or: La FAQ, les Sources

    Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
    Notre revanche ? l'inverse est aussi vrai ;-)

  7. #7
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2002
    Messages : 299
    Points : 373
    Points
    373
    Par défaut
    Rhaaaaa! Qu'il est beau le plantage! Merci TicTacToe, exactement ce qu'il me fallait.
    Me reste juste à expliquer à DrWatson où trouver les informations nécessaires, cool.

  8. #8
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par cedricgirard
    Rhaaaaa! Qu'il est beau le plantage! Merci TicTacToe, exactement ce qu'il me fallait.
    C'est pas courant comme solution
    Bientôt dans le bêtisier ?

  9. #9
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2002
    Messages : 299
    Points : 373
    Points
    373
    Par défaut
    C'est pourtant une demande réelle et bien utile dans mon cas. Comment tester un débogueur sans ça?

  10. #10
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 5
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par cedricgirard
    C'est pourtant une demande réelle et bien utile dans mon cas. Comment tester un débogueur sans ça?
    J'arrive un peu après la bataille, mais je pense que fatalexit est fait pour çà.

    FatalExit(ExitCode : integer);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. programme qui plante
    Par warubi dans le forum C++
    Réponses: 35
    Dernier message: 04/02/2007, 10h57
  2. comment faire un programme qui calcul la somme ?
    Par jahjouna dans le forum C++
    Réponses: 18
    Dernier message: 13/12/2006, 00h33
  3. Programme qui plante : seg fault
    Par Premium dans le forum C
    Réponses: 10
    Dernier message: 01/12/2006, 15h12
  4. programme qui plante. chercher/remplacer dans des fichiers.
    Par [Hugo] dans le forum Général Python
    Réponses: 2
    Dernier message: 31/10/2006, 17h10
  5. Programme qui plante
    Par harris_macken dans le forum C++
    Réponses: 1
    Dernier message: 22/05/2005, 23h50

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