Ich versuche ein Modul "main" zu debuggen, das eine Funktion "defekte_funktion" aufruft "in Zeile 356 von" another_module ". Ich habe einen Fehler in dieser Funktion und möchte am Anfang einen Haltepunkt setzen. Unten ist die Auflistung. Mache ich etwas falsch? Ursache, der Haltepunkt funktioniert nicht:Wie setze ich den Haltepunkt in einem anderen Modul (setze ihn nicht auf Funktionsdefinitionszeile, wenn du brechen willst wenn die Funktion gestartet wird)
$ python -m pdb main
(Pdb) import sys
(Pdb) sys.path.append("/home/user/path/to/another/module")
(Pdb) import another_module
(Pdb) b another_module:356
Breakpoint 1 at /home/user/path/to/another/module/another_module.py:356
(Pdb) c
Traceback (most recent call last):
...
File "/home/user/path/to/another/module/another_module.py", line 383, in broken_function
f=open("../jobs/temptree.tre", "r")
IOError: [Errno 2] No such file or directory: '../jobs/temptree.tre'
Uncaught exception. Entering post mortem debugging
...
BTW, können Sie auch einen harten Haltepunkt versuchen, um sicherzustellen, dass. In Zeile 383 einfügen "Import pdb; pdb.set_trace()" –
Guter Punkt, danke! Werde es jetzt versuchen. –
Dein Ratschlag funktioniert perfekt, aber das Verhalten von pdb ist mir seltsam. Die Zeile 356 ist die erste Zeile der Funktion "def broken_function():". Wenn ich den Haltepunkt in die nächste Zeile setze, wo der Kommentar steht, sagt pdb "*** Leer oder Kommentar", was bedeutet, dass die Nummerierung der Zeilen nicht unterbrochen ist. Haltepunkte innerhalb der Funktion funktionieren ordnungsgemäß. Seltsam ... Danke für deine Lösung! –