2017-11-15 5 views
0

Ich habe ein C++ - Programm, das zwei Instanzen eines Python-Programms in separaten Prozessen startet. Ich habe ein Problem im Python-Programm, das dazu führt, dass keine Logging-Informationen angezeigt werden. Die Python-Programminstanzen kommunizieren mit dem C++ - Programm über Stdin und Stdout/Stderr. Ich möchte, wenn möglich, eine Instanz des Programms unter dem Pydev-Debugger ausführen, da sich das C++ - Programm beschwert, ungültige Eingaben von beiden Python-Programmen erhalten zu haben. Das Python-Programm kann nichts ohne die Kommunikation mit dem C++ - Programm tun, so dass die isolierte Ausführung des Python-Programms nicht hilft.pydev debug Python-Programm von einem anderen Programm gestartet

Da Stdin und Stdout für die Kommunikation zwischen Prozessen verwendet werden, kann ich print() -Anweisungen nicht verwenden, sondern muss Python-Protokollierung verwenden, aber das Programm scheint abzustürzen, bevor irgendetwas die Protokolldatei erreichen kann. Das Python-Programm hat vor meinen letzten Änderungen gearbeitet, so dass die Architektur in Ordnung ist.

Irgendwelche Vorschläge?

Antwort

0

Mein Vorschlag, das Python-Programms für das Debuggen von C gestartet ++ Programm würde die Remote-Debugger-Funktion werden:

http://www.pydev.org/manual_adv_remote_debugger.html

(so Sie programmatisch starten Sie den Debugger auf dem Python-Code hinzufügen können, wo immer Sie‘ d wie ohne etwas Besonderes zu tun, um es zu starten).

+0

Das Problem dabei ist, dass der Python-Code schnell ausgeführt wird und wahrscheinlich beendet hätte, bevor ich die Verbindung herstellen konnte, besonders wenn ich ein Problem in den frühen Stadien der Ausführung habe. Aber, danke für den Vorschlag. – Jonathan

+0

Nun, der Debugger würde an dem manuellen Breakpoint anhalten, den Sie tun, also sollte er an dieser Stelle stoppen, unabhängig von der Geschwindigkeit des Codes (es sei denn, Sie töten ihn, wenn es zu lange dauert). –

Verwandte Themen