Debuggen einer Python-Erweiterung in Eclipse

Lesezeit: 2 Minuten

Ich habe eine Python-Erweiterung, die ich erfolgreich erstellt und unter Windows, OSX und Linux verwendet habe. Ich muss jetzt in der Lage sein, diese Python-Erweiterung zu debuggen. Ich bin der Verwendung von gdb auf der Kommandozeile abgeneigt, also würde ich das wirklich gerne in Eclipse zum Laufen bringen.

Zu Beginn habe ich mein Bestes getan, um die Anweisungen zu befolgen http://www.heikkitoivonen.net/blog/2008/07/21/debugging-python-extension-written-in-c-with-eclipse/, und ich habe den Ordner für die Python-Quelle sowie den Ordner für den Python-Erweiterungscode als Quellordner zum leeren Projekt hinzugefügt. Da es relativ einfach ist, Debug-Builds von allem, was unter Linux benötigt wird, zu bekommen, habe ich mit der Debug-Entwicklung in Ubuntu begonnen.

Nachdem ich einen Debug-Build von Python (nennen wir es python_d) erhalten hatte, führte ich die setup.py für meine Erweiterung mit aus

python_d setup.py build

was auch einen Debug-Build des Erweiterungsmoduls ergeben sollte. Ich habe überprüft, dass Symbole exportiert werden, indem ich die Erweiterung als Anwendung in Eclipse geöffnet habe, und ich kann den Quellcode sehen, der mit dem gemeinsam genutzten Python-Objekt verknüpft ist.

Wenn ich jetzt ein weiteres Projekt in Eclipse mit dem Ordner meines Codes erstelle und einen Haltepunkt in der Quelle hinzufüge, die zum Erstellen der Erweiterung verwendet wird, hält es nicht am Haltepunkt an. Es ist durchaus möglich, dass ich hier etwas ziemlich Wichtiges übersehe, aber für mein Leben kann ich es nicht zum Laufen bringen. Der Kern des Problems ist:

Wie können Sie Eclipse dazu bringen, an einem Haltepunkt in einem Python-Erweiterungsmodul anzuhalten?

  • Können Sie einen Haltepunkt setzen, kurz bevor der Python-Code den C-Code aufruft? Wenn ja, können Sie “step into” verwenden, um in die aufgerufene c-Funktion einzusteigen?

    – Spencer Rathbun

    16. September 2011 um 20:49 Uhr

Welchen Compiler verwendest du, MSVC oder GCC? Für MSVC können Sie zuerst Python starten und die python_d.exe (windbg oder Visual Studio) anhängen, dann können Sie Ihr Modul laden, den Haltepunkt einrichten, Sie können überprüfen, ob das Symbol Ihres Moduls im Debug->Modul-Fenster geladen wurde ( MSVC).

1384170cookie-checkDebuggen einer Python-Erweiterung in Eclipse

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy