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 :

Debug: Intercepter une ligne d'erreur sans l'éditeur Delphi


Sujet :

Langage Delphi

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 321
    Points : 88
    Points
    88
    Par défaut Debug: Intercepter une ligne d'erreur sans l'éditeur Delphi
    Bien le bonjour a tous,

    J'aimerais bien savoir comment faire ou introduire des indications de sortie
    au moment d'un crash du programme et d'envoyer à ce moment-là une
    information du genre 'showmessage' ou écrire sur disque, que c'est dans
    ce No ligne ou dans cette procédure que l'erreur s'est produite!

    En utilisant le debug de delphi je peux suivre et intercepter la ligne ou la raison de l'erreur.Mais si le programme est installé sur un autre PC sans l'éditeur de Delphi et si une erreur est exposé du genre, example:
    <list index out of bounds (1)>.... L'erreur est affichée mais ne me dit pas quelle ligne ou quelle procédure que c'est produit!

    Que pouvez vous me proposer pour intercepter l'emplacement de ligne de l'erreur...

    Merci beaucoup pour l'aide.
    Salutations

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 563
    Points : 25 165
    Points
    25 165
    Par défaut
    Tu peux pour les exceptions, faire un gestionnaire d'évènement pour Application.OnException ... pour retrouver l'endroit où l'exception s'est déclenché c'est plus problématique (il y a du code ASM pour ça, sinon voir avec FastMM si il y a un moyen de récupérer le TraceStack)

    Maintenant, si le Crash c'est qu'il plante sans déclencher d'exception mais des OSError ça devient plus problématique

  3. #3
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 754
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 754
    Points : 13 340
    Points
    13 340
    Par défaut
    D'accord avec Shai.

    Donne un tag en écrivant dans le fichier. Style Err1, Err2, etc. Facile à retrouver.

    Si l'installation sur l'autre machine est pour faire des tests (OS différent), tu peux installer le RemoteDebugger. Le prog s'éxecute sur la machine distante à travers le Delphi local.

  4. #4
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 321
    Points : 88
    Points
    88
    Par défaut
    Bonjour,
    - Aurais-tu un exemple comment installer le 'RemoteDebugger' est-ce une partie de Delphi, ou autre...
    - J'ai fais quelques test avec 'Application.OnException' en recherchant des exemples, mais pas encore avec des résultats convaincant, aurais tu aussi un petit exemple implémentation.

    Merci et bonne Journée.

  5. #5
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 754
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 754
    Points : 13 340
    Points
    13 340
    Par défaut
    Le Remote Debugger est sur le CD Delphi. Tu as normalement l'otion à l'insertion du CD.
    Tu l'installes sur la machine distante.

    Dans les options de ton projet, Lieur, tu coches Symboles de débogage distant.

    A la compilation, tu auras des fichiers .rsm qui seront créés. Tu dois les copier sur la machine distante dans le même répertoire que l'exe. (Le plus simple étant de compiler dans un répertoire accessible depuis les deux machines. Sinon tu dois les recopier à chaque compilation)

    L'exe est lancé DEPUIS Delphi:
    Menu Exécuter, Charger un processus distant.

    Sélectionne Distant.
    Dans chemin distant, tu renseignes le répertoire LOCAL A LA MACHINE DISTANTE. Et bien sur le nom de l'ordinateur dans Hôte distant.

    Regarde dans l'aide pour plus d'info.

  6. #6
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 321
    Points : 88
    Points
    88
    Par défaut
    Merci pour ton guidage, je suis en test...

  7. #7
    Membre régulier Avatar de djeckelle
    Femme Profil pro
    Architecte de système d'information
    Inscrit en
    Septembre 2004
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 46
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2004
    Messages : 87
    Points : 101
    Points
    101
    Par défaut
    Salut,

    Je pense qu'en mettant en place une bonne gestion d'erreurs et des exceptions (pour cela je te conseil d'aller voir http://delphi.developpez.com/cours/l...n-des-erreurs/)
    Tu peux au moment où catch l'exception écrire dans un fichier les infos necessaires à l'identification du problème : Nom de l'unit, nom de la méthode , N° de ligne de l'erreur, valeur des variables....

Discussions similaires

  1. [XL-2003] Suppression d'une ligne si erreur "#VALEUR!"
    Par Senelya dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/07/2010, 15h06
  2. Réponses: 20
    Dernier message: 30/04/2009, 18h02
  3. update une ligne de gridview sans passer par edit
    Par pseudo88 dans le forum ASP.NET
    Réponses: 8
    Dernier message: 16/03/2009, 12h52
  4. Comment récupérer l'identifiant d'une ligne en erreur lors d'un update
    Par backseatgreg dans le forum Développement
    Réponses: 1
    Dernier message: 20/07/2008, 12h32
  5. explication d'une ligne d'erreur DEV
    Par katia_heraklion dans le forum C
    Réponses: 2
    Dernier message: 26/03/2007, 19h26

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