Vorweg: Hab ein AST-Engine programmiert, die mir Python Code in nem AST darstellt (aber nicht nuanciert

Das nächste ist dann eine Metrik Einheit die aus den Informationen im AST die Metrik erzeugt (Anzahl Code-/Blank-/Commentlines).
Zum Problem:
- Die AST-Engine (besser gesagt der Generator) ist seit Heute Bug-Frei bzw. alle lokalisierten Bugs konnte ich entfernen.
- Das problem ist nun die Metrik-Engine

Hab da bugs drine und es ist verdammt schwer nun die Abhängigkeiten zu lokalisieren die dazu geführt haben. Eins weis ich auf jeden Fall, das es an der AST-Engine zu 98% nicht liegen kann, weil ich mir dafür eine Funktion geschrieben habe die mir die Verzweigung anzeigt, womit ich überprüfen kann ob die Elemente auch an ihren richtigen Platz kommen (Adressierung, etc wird unter anderem dafür benutzt).
Nach dem ich das ausschließen kann, muss irgendwo in der Metrik Einheit der Käfer drin sein.
print:
Mit printen geht das bei der Größe des codes schlecht. Da sind zuviel stellen die ich mit print untersuchen müsste und dann muss man das ja auch noch logisch nachvollziehen können was da gerade passiert. Arbeitszeit = ca. 1-2 Tage mit diesen verfahren. Erfolg, dabei nicht garantiert.
debuger:
Hmm, ist auch nicht gerade besser weils sehr Zeit intensiv ist und mir bisher auch nicht geholfen hat (vielleicht benutze ich den debuger in PyDev auch falsch).
Nun meine Frage:
Vorweg: Ich möchte nun den Metrik teil nun neu schreiben.
Wie baue ich den code am besten auf das ich den gut Debugen kann? Ich ahb mir da vorgestellte das ich mit print in wichtigen abschnitten eine Status der verwendeten Elemente zurückgebe, anhand dessen ich nachvollziehen kann was gerade passiert. Wie gehe ich da am besten vor ohne den Code mit tausenden "if _debug_:" zu bombardieren. Und wie baut man sowas am besten auf mit dem Debugen? In C/C++ hatte man dafür halt Konstanten verwendet und solche sachen mit den man Festlegen kann das der Debug code nachher in der Finale-Version nicht mit Kompiliert wird.
Wie geht ihr am besten vor wenn ihr code schreibt? Benutzt ihr irgendwelche bestimmten Sachen oder benötigt ihr das vielleicht gar nicht weil ihr den Code gleich nachvollziehen könnt ohne stunden darüber nachzudenken was der Code von euch nun an der stellen macht?

Würde mich über Ratschläge freuen, den so wie ich momentan arbeite² kann es nicht mehr weitergehen (da steigt ja kein mensch nach langer Zeit durch).
² = Tja ich schreiben den Code, kommentiere wichtige stellen und benutze Docstrings. Mehr mache ich nicht. Debugen tue ich mit "print" und wehrend den Programmieren kommt auch sehr oft "print" zum Einsatz um zu überprüfen ob der code das tut was ich mir gedacht habe.
lg
P.S.: BTW: Ja ich weiß, Python hat selber was um nen AST zu erzeugen. Auch Tools die Metrik von nem Code anzeigen gibt es auch tausende. Aber, die Aussage "Ich will wissen wie das geht und will dabei was Lernen" rechtfertigt so ein unterfangen jederzeit zu 100%!!
