[Python-de] ich suche die Datei "pythonrun.c"

Gerhard Häring haering_python at gmx.de
Mon May 13 05:28:12 EDT 2002


* Georg Mischler <schorsch at schorsch.com> [2002-05-12 21:50 -0400]:
> Gerhard Häring wrote:
> Das haette man natuerlich gerne etwas eleganter... ;)

Klar.

> Wenn du dein Programm mit Python erweiterst, also ein #include "Python.h"
> drinstehen hast, dann wird bei einem Debug-Build automatisch die
> Python##_d.dll eingebunden.

Ok. Was muss da sonst noch einstellen? Multithreaded MSVCRT DLL, selbige im
Debug-Modus für Debug-Builds und im Release-Modus für Release Builds. War's
das, oder sonst noch was?

> Wenn du "nur" eine Erweiterung entwickelst,

Mach ich grundsätzlich. Ich verwende C(++), nur wo ich es nicht vermeiden kann
;-)

> ist es aehnlich einfach.  Du gibst dann als auszufuehrendes Programm beim
> Debuggen schlicht den Debug-Build des Interpreters an (python_d.exe), und
> wieder hast du mit F5 eine normale Debug-Session am laufen.

Und als Kommandozeilenparameter das Testscript. Aus mir unerfindlichen Gründen
musste ich bisher (zumindest unter Unix) auch immer ein "export PYTHONPATH=."
machen, damit er das Testscript auch gefunden hat.

> Wenn du im Code deiner Erweiterung einen Breakpoint gesetzt hast, dann kannst
> du in der nun erscheinenden Konsole "import modulname" eingeben, und sobald
> der Breakpoint erreicht ist, fuehlst du dich gleich wieder zuhause.

Das Problem ist, dass man AFAIK Breakpoints nur in geladenen DLLs setzen kann,
also muss ich in jedem Fall zuerst den Modul-Import machen und danach entweder
*ganz ganz schnell* im Debugger den Breakpoint setzen oder halt ein raw_input()
o. ä. machen, um mich weniger beeilen zu müssen.

Den raw_input() kann man vermeiden, wenn man sich einfach selber einen kleinen
Python-Interpreter baut mit Hilfe von PyInterpreter_New(), die Extension in
sein Executable integriert, sie mit der init-Funktion des Moduls lädt und dann
ein Testscript ausführt. Hab ich auch schon des öfteren gemacht.

> [...] Zu Verrenkungen wie dem externen Anflanschen des Debuggers an ein schon
> laufendes Programm wird es dabei nur sehr selten einen guten Grund geben.

Wohl nur so eine Angewohnheit von mir, hat bei mir halt bisher besser
funktioniert.

Gerhard
-- 
This sig powered by Python!
Außentemperatur in München: 9.9 °C      Wind: 0.5 m/s



More information about the Python-de mailing list