On m'a dit de corriger un bogue dans une application héritée.Soulever Exception sur un appel système indésirable
Je peux reproduire un bogue, mais je n'ai aucune idée de la ligne de code source python à laquelle l'erreur est exécutée.
Je peux voir l'échec pertinent avec strace
: Un fichier est ouvert, qui ne devrait pas être ouvert.
Je voudrais que l'instruction open() linux-syscall génère une exception dans l'interpréteur python. Mon objectif: je veux voir la pile de paquets pour pouvoir corriger le bug. De cette façon, j'ai pu éviter le temps passé à traverser beaucoup de lignes avec un débogueur.
La même chose avec d'autres mots: si le syscall est exécuté, ce qui entraîne la sortie de strace de open("/somefile", O_RDONLY) = 4
l'interpréteur python devrait sortir avec un retraçage.
Quelqu'un at-il une solution?
S'il vous plaît laissez un commentaire si vous ne comprenez pas ce que je cherche.
Serait-il possible de renommer temporairement '/ somefile' afin que tout tentative d'appel échoue pour l'ouvrir? (En supposant que le code ne gère pas déjà la situation du fichier manquant lui-même.) – chepner
Non, il ne sera pas utile de renommer le fichier. – guettli