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

  FORUM HardWare.fr
  Programmation

  PERL : traquer une segfault

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

PERL : traquer une segfault

n°198538
sihal_agai​n
in doubt, reboot
Posté le 21-08-2002 à 10:57:46  profilanswer
 

salut a tous: j'ai une fonction qui me segfault a la gueule, esty ce que vous auriez des idées pour traquer ca ?


---------------
Graphisme, créations, court-métrages, fonds d'écrans :  
mood
Publicité
Posté le 21-08-2002 à 10:57:46  profilanswer
 

n°198553
sihal_agai​n
in doubt, reboot
Posté le 21-08-2002 à 11:04:28  profilanswer
 

du genre des utilitiares comme strace, ou autres ( j'ai essayé strace, j'arive pas  a trouver le seg fault avec, alors je voudrais essayr d'autres trucs ;  


---------------
Graphisme, créations, court-métrages, fonds d'écrans :  
n°198568
kfman
Credo quia absurdum
Posté le 21-08-2002 à 11:11:25  profilanswer
 

Perso en C, pour résoudre ce genre d'erreur, je cherche tjs en premier du côté des types de variables et des indices de tableaux, c'est des causes d'erreurs très fréquentes.
 
En Perl, ce doit être pareil je pense.  
 

n°198574
sihal_agai​n
in doubt, reboot
Posté le 21-08-2002 à 11:13:26  profilanswer
 

non car il n'y a pas de typage de données, et le dimensionement des tableaux est totomatique


---------------
Graphisme, créations, court-métrages, fonds d'écrans :  
n°198583
Jar Jar
Intaigriste
Posté le 21-08-2002 à 11:16:35  profilanswer
 

Cette fonction, elle est écrite en C ou en perl ?
Dans le premier cas, tu peux utiliser gdb :

gdb /usr/bin/perl
(gdb) run monscript.pl
Blah blah
Segmentation fault
(gdb) backtrace


Dans le second, c'est probablement un bug de l'interpréteur.


---------------
« No question is too silly to ask, but, of course, some are too silly to answer. » -- Perl book
n°198593
sihal_agai​n
in doubt, reboot
Posté le 21-08-2002 à 11:20:29  profilanswer
 

c'est une fonction perl .  
Ce n'est pas un bug de l'interpreteur ( enfin je veux dire que si l'interpreteur merde, c'est que ya un moment je l'ai fait merder ....) vous connaissez pas des bons modules CPAN pour avoir un stack trace utile ?


---------------
Graphisme, créations, court-métrages, fonds d'écrans :  
n°198698
Aricoh
gentil mais fo po pousser
Posté le 21-08-2002 à 12:18:51  profilanswer
 

et si tu nous montrais ta fonction pour voir ?


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
n°198734
sihal_agai​n
in doubt, reboot
Posté le 21-08-2002 à 12:33:00  profilanswer
 

mmmmm désolé mais non. c'est un script pour une boite et c pas possible de montrer, je sais c chiant, je suis le premier a etre soulé.  
en plus, le script total ( + modules ) doit faire dans les 2500 lignes alors ..


---------------
Graphisme, créations, court-métrages, fonds d'écrans :  
n°198752
Jar Jar
Intaigriste
Posté le 21-08-2002 à 12:49:16  profilanswer
 

sihal_again a écrit a écrit :

c'est une fonction perl .  
Ce n'est pas un bug de l'interpreteur ( enfin je veux dire que si l'interpreteur merde, c'est que ya un moment je l'ai fait merder ....)


En aucun cas ça ne devrait faire une erreur de segmentation, l'interpréteur devrait afficher lui-même l'erreur.


---------------
« No question is too silly to ask, but, of course, some are too silly to answer. » -- Perl book
n°198754
Aricoh
gentil mais fo po pousser
Posté le 21-08-2002 à 12:52:37  profilanswer
 

sihal_again a écrit a écrit :

mmmmm désolé mais non. c'est un script pour une boite et c pas possible de montrer, je sais c chiant, je suis le premier a etre soulé.  
en plus, le script total ( + modules ) doit faire dans les 2500 lignes alors ..  



Oki, moi y en a comprendre toi :)
 
quand tu fais un perl -c -w TonScript.pl, ça ne génère pas plus de messages d'erreur ?
 
Et sinon, as-tu la possibilité d'exécuter ton script via un autre script, lequel le lancerait via un eval ? Peut être que là aussi, tu pourrais chopper davantage d'info ?
 
Sinon, je ne vois qu'une autre solution : mettre en commentaires les lignes que tu juges douteuses, compiler le script et si po d'erreurs, décommenter les lignes par petite portion


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO -> Google Pixel 9 PRO XL
mood
Publicité
Posté le 21-08-2002 à 12:52:37  profilanswer
 

n°198796
sihal_agai​n
in doubt, reboot
Posté le 21-08-2002 à 14:00:17  profilanswer
 

l'eval ne sort rien.  
sinon, désolé JarJar, mais en codant comme un porc, on peut avoir un SIGSEGV, en manipulant n'importe comment des références ( remarque je ne vois pas comment faire donc...) en fait le jeu serait d'arriver a prduire une erreur de segmentation histoire de savoir ce qui les cause...


---------------
Graphisme, créations, court-métrages, fonds d'écrans :  
n°199000
Jar Jar
Intaigriste
Posté le 21-08-2002 à 16:49:31  profilanswer
 

sihal_again a écrit a écrit :

sinon, désolé JarJar, mais en codant comme un porc, on peut avoir un SIGSEGV, en manipulant n'importe comment des références ( remarque je ne vois pas comment faire donc...) en fait le jeu serait d'arriver a prduire une erreur de segmentation histoire de savoir ce qui les cause...


Normalement, quoi qu'il arrive dans ton code interprété, c'est l'interpréteur qui doit détecter les débordements (éventuellement en utilisant des exceptions sur les SIGSEGV, par exemple). Exemple con : si tu regardes dans un pointeur qui ne pointe sur rien, avec un langage compilé ça segfaulte. Avec un langage interprété, c'est à l'interpréteur de dire que ça ne pointe sur rien, histoire que tu puisses définir tes propres exceptions.


---------------
« No question is too silly to ask, but, of course, some are too silly to answer. » -- Perl book
n°199214
sihal_agai​n
in doubt, reboot
Posté le 21-08-2002 à 20:17:41  profilanswer
 

je suis d'accord. mais pour que linterpreteur sote une segfault il faut quil y ait une raison.  
en loccurence, voici pourquoi ca plantait:
javais un certain nombre de handlers de signals, certains avec des actions a l'interieur. hors, si en général ca ne pose pas trop de problèmes, c dangereux si on utilise des modules qui utilisent des librairies C ( pour dobscures raisons ) . C'etais mon cas: XML::Parser et dans une moindre mesure, DBI. en bloquant les signaux  génants en rentrant dans le parseur, jai résolu mon pb.


---------------
Graphisme, créations, court-métrages, fonds d'écrans :  

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

  PERL : traquer une segfault

 

Sujets relatifs
[PERL] fichier PM[Perl] c'est pas trop porc ca ?
[PERL/C/SOCKETS] Problème de sockets en PERL[PERL] Parser XML et caractères non utf8
[PERL] Nombre d'élément d'un hashPERL et XML comment parser avec SAX
PERL CGI est securité[Perl] Mémoire partagé en multi-thread
perl/tk et compilation[perl] besoin d aide
Plus de sujets relatifs à : PERL : traquer une segfault


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