Używam ipdb.set_trace()
, gdy potrzebuję ustawić punkt przerwania w moim kodzie. Obecnie próbuję go użyć w procesie, który utworzyłem przy użyciu multiprocessing
, podczas gdy kod się zatrzymuje, nie mogę wpisać niczego, aby kontynuować debugowanie. Czy istnieje sposób na poprawne kierowanie moim stdin
?Sposób korzystania z pliku ipdb.set_trace w rozwidlonym procesie
Idealnie chciałbym sobie wyobrazić otwarcie nowej konsoli za każdym razem, gdy rozwidlony proces zostanie zatrzymany do debugowania, ale nie sądzę, że jest to możliwe.
Byłoby miło, gdyby zweryfikować odpowiedź udzieloną przez @ yoav-glazner. Czy możesz używać klawiatury po zmianie _multiprocessingu_ przez _dummy_ ?. – jgomo3
@ jgomo3 Potwierdziłem, że to działa, ale ja (osobiście) nie czuję, że to odpowiada na moje pytanie – Seanny123
Przypuszczam, że za każdym razem, gdy chcesz debugować, musisz zmienić kod. Można argumentować, że robisz to już za pomocą pdb.set_trace(), ale wiem, że spadłeś, powinieneś mieć inny sposób na osiągnięcie tego samego bez zmiany kodu. Zastanawiam się, czy istnieje sposób na powiedzenie pdb, aby zamiast importu wieloprocesowego używał manekina zamiast wieloprocesowości? Rodzaj monkeypatching/kpiny do debugowania. – jgomo3