existe t'il un moyen simple d'inspecter interactivement une fonction qui
plante en runtime, de la même maniere qu'il est possible de le faire
dans la partie principale du programme via PYTHONINSPECT ou l'option -i
au lancement du script ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Alexandre Fayolle
Le 11-07-2006, Cémoi nous disait:
Bonjour,
existe t'il un moyen simple d'inspecter interactivement une fonction qui plante en runtime, de la même maniere qu'il est possible de le faire dans la partie principale du programme via PYTHONINSPECT ou l'option -i au lancement du script ?
Tu devrais pouvoir mettre ton script dans un try...except et dans le bloc except: appelle pdb.pm() (non testé)
-- Alexandre Fayolle LOGILAB, Paris (France) Formations Python, Zope, Plone, Debian: http://www.logilab.fr/formations Développement logiciel sur mesure: http://www.logilab.fr/services Python et calcul scientifique: http://www.logilab.fr/science
Le 11-07-2006, Cémoi <laurent.thioudellet.nospam@invalid.free.fr> nous disait:
Bonjour,
existe t'il un moyen simple d'inspecter interactivement une fonction qui
plante en runtime, de la même maniere qu'il est possible de le faire
dans la partie principale du programme via PYTHONINSPECT ou l'option -i
au lancement du script ?
Tu devrais pouvoir mettre ton script dans un try...except et dans le
bloc except: appelle pdb.pm() (non testé)
--
Alexandre Fayolle LOGILAB, Paris (France)
Formations Python, Zope, Plone, Debian: http://www.logilab.fr/formations
Développement logiciel sur mesure: http://www.logilab.fr/services
Python et calcul scientifique: http://www.logilab.fr/science
existe t'il un moyen simple d'inspecter interactivement une fonction qui plante en runtime, de la même maniere qu'il est possible de le faire dans la partie principale du programme via PYTHONINSPECT ou l'option -i au lancement du script ?
Tu devrais pouvoir mettre ton script dans un try...except et dans le bloc except: appelle pdb.pm() (non testé)
-- Alexandre Fayolle LOGILAB, Paris (France) Formations Python, Zope, Plone, Debian: http://www.logilab.fr/formations Développement logiciel sur mesure: http://www.logilab.fr/services Python et calcul scientifique: http://www.logilab.fr/science
Cémoi
Tu devrais pouvoir mettre ton script dans un try...except et dans le bloc except: appelle pdb.pm() (non testé)
on peut lancer le script avec l'option -i ou définir la variable
d'environnement PYTHONINSPECT avec une chaine non nulle; une fois que la fonction s'est plantée et que l'interpreteur reprend la main, il suffit d'importer pdb et d'executer pdb.pm ().
Ca fonctionne tres bien, pas besoin d'ajouter de couple try/except, et ça correspond exactement à ce que je souhaitais faire. L'instruction list permet de savoir ou ça s'est planté. dir () reste valide et permet d'afficher l'espace de noms de la fonction. Il faut faire ensuite attention que certaines variables peuvent etre "écrasées" par pdb: si on veut afficher la variable j, il faut faire un 'print j' plutot que 'j' tout seul qui dans ce cas sera reconnu comme l'instruction jump.
Merci pour ton aide,
Laurent
Tu devrais pouvoir mettre ton script dans un try...except et dans le
bloc except: appelle pdb.pm() (non testé)
on peut lancer le script avec l'option -i ou définir la variable
d'environnement PYTHONINSPECT avec une chaine non nulle; une fois que la
fonction s'est plantée et que l'interpreteur reprend la main, il suffit
d'importer pdb et d'executer pdb.pm ().
Ca fonctionne tres bien, pas besoin d'ajouter de couple try/except, et
ça correspond exactement à ce que je souhaitais faire.
L'instruction list permet de savoir ou ça s'est planté.
dir () reste valide et permet d'afficher l'espace de noms de la fonction.
Il faut faire ensuite attention que certaines variables peuvent etre
"écrasées" par pdb: si on veut afficher la variable j, il faut faire un
'print j' plutot que 'j' tout seul qui dans ce cas sera reconnu comme
l'instruction jump.
Tu devrais pouvoir mettre ton script dans un try...except et dans le bloc except: appelle pdb.pm() (non testé)
on peut lancer le script avec l'option -i ou définir la variable
d'environnement PYTHONINSPECT avec une chaine non nulle; une fois que la fonction s'est plantée et que l'interpreteur reprend la main, il suffit d'importer pdb et d'executer pdb.pm ().
Ca fonctionne tres bien, pas besoin d'ajouter de couple try/except, et ça correspond exactement à ce que je souhaitais faire. L'instruction list permet de savoir ou ça s'est planté. dir () reste valide et permet d'afficher l'espace de noms de la fonction. Il faut faire ensuite attention que certaines variables peuvent etre "écrasées" par pdb: si on veut afficher la variable j, il faut faire un 'print j' plutot que 'j' tout seul qui dans ce cas sera reconnu comme l'instruction jump.