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