roter Punkt in Pycharm

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Antworten
Benutzeravatar
Bill987654321
User
Beiträge: 136
Registriert: Sonntag 8. März 2020, 10:56

Hallo,
ich habe ein Problem mit Pycharm.
Vor verschiedenen Zeilen habe ich einen roten Punkt gesetzt. Wenn ich den Debugger starte hält er am ersten roten Punkt. Wenn ich dann den Pfeil anklicke, springt er zum nächsten roten Punkt - wie es sein soll. Wenn ich den Pfeil wieder anklicke, tut sich nichts mehr - er springt nicht zum nächsten roten Punkt.
Was muss ich ändern, damit der Debugger zu jedem roten Punkt springt?
__deets__
User
Beiträge: 14542
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das kann man so nicht gut beurteilen, aber nur weil ein Breakpoint gesetzt wurde (so heissen die roten Punkte), heisst das ja noch lange nicht, dass der auch erreicht wird.

Siehe zB folgendes Programm:

Code: Alles auswählen

def test():
    print("test") # hier ein Breakpoint gesetzt - der wird nie erreicht
print("hallo")
Du muesstest also schon den Code zeigen, und die Breakpoints, die du gesetzt hast.

Und du musst natuerlich die Breakpoints behalten. Wobei ich nicht wirklich glaube, dass dies das Problem ist.
Benutzeravatar
Bill987654321
User
Beiträge: 136
Registriert: Sonntag 8. März 2020, 10:56

Ich habe folgenden Code geschrieben:

Code: Alles auswählen

# ********************************************************
# ********************************************************
# Hier beginnt das Hauptprogramm

# belegte Variablen: a,b,i,j

a = ""

mannschaftsnamen = []

tabelle_lfd_nr = []

tabelle_alphabet = []
tabellenzeile_alphabet = []

tabelle_punkte_mit_rang = []

tabelle_alphabet_formatiert = []
tabellenzeile_alphabet_formatiert = []

tabelle_alphabet_formatiert_2 = []
tabellenzeile_alphabet_formatiert_2 = []



print("Bei diesem Programm musst du für jede Liga einen eigenen \
Ordner anlegen.\n")
print("Wenn du bei diesem Programm eine neue Liga anlegst, musst \
du auch gleich mindestens ein Spielergebnis eingeben.\n")


# ****************************************************************
# Abfrage "neue Tabelle anlegen" ja oder nein

while True:
    try:


In den Zeilen 11, 26 und 28 habe ich einen roten Punkt gesetzt. Zeile 11 ist folgende

Code: Alles auswählen

tabelle_lfd_nr = []
Ich vermute, dass das was mit dem "Main Thread" zu tun hat. Die Zeile 11 gehört zum "Main Thread". Die Zeile 26 nicht.
Benutzeravatar
sparrow
User
Beiträge: 4195
Registriert: Freitag 17. April 2009, 10:28

Höh? Das ist doch alles ein Thread...
Wäre auch schlimm wenn nicht, weil der komplette Cose auf Modulebene steht.
Benutzeravatar
Bill987654321
User
Beiträge: 136
Registriert: Sonntag 8. März 2020, 10:56

Vielen Dank für deine zeitnahe Antwort.

Was muss ich ändern, damit mein Programm bei jedem roten Punkt anhält und weiterläuft, wenn ich den Pfeil anklicke?
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

Gar nichts, denn das tut schon so, wenn man den von Dir gezeigten Code und Deiner Beschreibung folgt.
Also ist das entweder nicht der Code oder die Beschreibung, was Du tust, passt nicht ganz, oder beides.
__deets__
User
Beiträge: 14542
Registriert: Mittwoch 14. Oktober 2015, 14:29

Kann man immer noch nicht sagen. Das da oben ist nicht der gesamte Code.
Benutzeravatar
Bill987654321
User
Beiträge: 136
Registriert: Sonntag 8. März 2020, 10:56

Mein Code ist ca. 700 Zeilen lang. Das ist zuviel, um ihn hier zu posten.
Welche Ursachen könnte es haben, dass der Debugger nicht bei jedem roten Punkt anhält?
__deets__
User
Beiträge: 14542
Registriert: Mittwoch 14. Oktober 2015, 14:29

700 Zeilen sind durchaus verkraftbar. Aber das ist deine Entscheidung. Abstrakte Gruende, warum der Debugger einen Breakpoint nicht ansteuert, gibt es jede Menge. Weil der Mond nicht im dritten Haus steht, weil ein Elf im Hauptspeicher sitzt und den Breakpoint disabled, oder weil der Debugger einen Bug hat. Das man etwas programmiert, und der deswegen nicht anspringt, gehoert NICHT dazu. Sondern da kann es einfach sein, dass deine Verstaendnis vom eigenen Code nicht passt. Wenn du das 100%ig ausschliesst, und weiterhin darauf bestehst, den Code nicht zu zeigen, wie er ist, dann kannst du dich an den Hersteller deiner IDE wenden, und einen Bug melden. Spaetestens da wirst du aber Butter bei die Fische tun muessen, denn die aktzeptieren keine Bugs ohne Code der die reproduziert.
Benutzeravatar
Bill987654321
User
Beiträge: 136
Registriert: Sonntag 8. März 2020, 10:56

O.k.
Weiß noch nicht, was ich mache.
NPC
User
Beiträge: 54
Registriert: Dienstag 8. Januar 2019, 17:51

Meine erste Vermutung wäre immer, dass der entsprechende Code nicht erreicht wird. Überprüfe auf jeden Fall ob du in irgendwelchen Schleifen festhängst (infinity loop oder einfach sehr lange). Wenn zwischen den beiden Haltepunkten nicht zu viele Befehle liegen geh sie alle schritt für schritt durch und kontrolliere, wo du hängen bleibst. Oder überspringt er den Haltepunkt nur?
Antworten