grosdave653
Messages postés16Date d'inscriptionjeudi 1 juillet 2004StatutMembreDernière intervention29 juillet 2005
-
22 juil. 2005 à 08:57
grosdave653
Messages postés16Date d'inscriptionjeudi 1 juillet 2004StatutMembreDernière intervention29 juillet 2005
-
26 juil. 2005 à 15:54
Bonjour,
Je voudrais savoir si il est possible de récupérer le nom de l'unité et le numéro de ligne d'une erreur lorsqu'elle se produit.Le ShowException n'est pas suffisant ...
Merci
cs_grandvizir
Messages postés1106Date d'inscriptionsamedi 8 novembre 2003StatutMembreDernière intervention 3 septembre 200622 24 juil. 2005 à 21:01
Delphi est un débuggeur dont le processus d'analyse est intégré dans le fonctionnement de l'application. Les exceptions sont détectées par des adresses, et comme Delphi est le compilateur, il sait quelle instruction à l'adresse X est associée à la ligne de code numéro N. Ces données sont mémorisées dans les DCU (si une option a été cochée, ce qui est vrai par défaut).
Une fois l'EXE déployé, ce que tu veux n'est plus possible. Il faut que tu insères des marqueurs stratégiques afin de repérer la ligne. C'est ce que fait le linker de Delphi : lorsqu'il rencontre une erreur interne (un bug dans sa programmation), il affiche une clé du style "C1205". Seul Borland peut effectuer les corrections approfondies...
Il n'est pas concevable de mettre des marqueurs sur chaque ligne : inutile, alourdissement et ralentissement de l'exe.
En théorie, connaissant l'adresse de l'erreur, avec des outils sophistiqués, tu devrais peut-être pouvoir retrouver le code qui est fautif dans ton programme. Jugeotte oblige sinon à quoi servirait l'adresse affichée.
grosdave653
Messages postés16Date d'inscriptionjeudi 1 juillet 2004StatutMembreDernière intervention29 juillet 2005 25 juil. 2005 à 09:36
C'est bien gentil de ramener ta science mais j'aurais préféré que tu répondes simplement à ma question, à savoir "est-il possible de récupérer le numéro de la ligne et l'unité où c'est produite une erreur". Je ne te demande pas de m'expliquer comment fonctionne le compilateur, parce que premièrement je m'en tape, et deuxièmement ça na rien à voir avec ma question.
"tu devrais peut-être pouvoir retrouver le code qui est fautif dans ton programme."
Cette phrase est un peu prétentieuse de ta part Je n'ai pas de code FAUTIF dans mon programme, je cherche seulement à récupérer les infos sur une erreur lorsqu'elle se produit.
Merci de ne pas prendre les gens pour des abrutis ...
cs_grandvizir
Messages postés1106Date d'inscriptionsamedi 8 novembre 2003StatutMembreDernière intervention 3 septembre 200622 25 juil. 2005 à 10:06
«Une fois l'EXE déployé, ce que tu veux n'est plus possible»
«Il faut que tu insères des marqueurs stratégiques»
Si tu n'as pas envie de comprendre certaines choses, c'est ton problème... D'ailleurs, j'aurais pu te laisser sans réponse, et il n'y aurait pas eu d'embrouilles (perso, j'en vois pas).
C'est pas compliqué : 1 exception 1 adresse + 1 code erreur. De toutes façons, c'est pas en une ligne qu'on te fera apprendre ce qu'est le debuggage. Alors reste avec tes a priori, et à bientôt... ViewVite XP : HTML
Vous n’avez pas trouvé la réponse que vous recherchez ?
grosdave653
Messages postés16Date d'inscriptionjeudi 1 juillet 2004StatutMembreDernière intervention29 juillet 2005 26 juil. 2005 à 11:11
Arf... Scuze
Je sais comment marche le debuggeur (dans les grandes lignes) mais ce que je veux, et ce que tu veut pas me dire on dirai ... c'est récupérer DANS l'application, alors qu'elle est en exécution, le numéro de ligne et l'unité où est survenue une erreur. Je ne parle pas d'une erreur précise qui me poserai un problème, je te parle du cas général où une erreur se produit alors qu'elle n'est pas gérer dans le code par un try par exemple, car je fais une petite appli utilisable dans différents programmes qui prend une capture d'ecran lorsqu'une erreur inconnue se produit et qui envoie celle-ci par mail au responsable en question.
Pour être plus précis, une fois un logiciel terminé et mis en place, des erreurs dues au réseau peuvent apparaitrent alors qu'elle n'exsitait pas en phase de développement... je veux donc être capable de savoir où se produisent ces erreurs... est-ce enfin clair ?? ou est ce que tu va encore me parler d'adresses ?
cs_grandvizir
Messages postés1106Date d'inscriptionsamedi 8 novembre 2003StatutMembreDernière intervention 3 septembre 200622 26 juil. 2005 à 14:07
J'ai très bien compris ton problème, expliqué en C++ sur un autre topic. Une adresse xxxx:xxxx permet de repérer l'instruction ASM qui a buggé dans ton fichier EXE. Mais après, pour retrouver le code Pascal à l'origine de l'adresse affichée, c'est une autre paire de manches...