Wie benutzt man Python, um GDB-Unterprozeß zu erstellen und Befehle dynamisch basierend auf Ausgabe zu senden?

Hier ist ein allgemeines Beispiel dafür, was ich tun muss:

Zum Beispiel würde ich eine Rückspur einleiten, indem ich den Befehl "bt" an GDB aus dem Programm schicke. Dann würde ich nach einem Wort wie "pardrivr" suchen und die Zeilennummer damit verknüpfen, indem ich regelmäßige Ausdrücke verwende. Dann würde ich "f [line_number_of_pardriver]" in GDB eingeben. Dieser Vorgang wird wiederholt, bis die korrekte Information schließlich extrahiert wird.

Ich möchte Python verwenden, um dies zu erreichen, indem du einen Teilprozess von GDB schaffst. Dann möchte ich Befehle an GDB senden und die Ausgabe von GDB lesen. Ich würde die Ausgabe verwenden, um mehr Befehle an GDB dynamisch zu senden, basierend auf dem Inhalt der Ausgabe.

Könnte jemand bitte ein einfaches Beispiel dafür geben?

Ich danke dir sehr!

One Solution collect form web for “Wie benutzt man Python, um GDB-Unterprozeß zu erstellen und Befehle dynamisch basierend auf Ausgabe zu senden?”

Verwenden Sie Pexpect: http://pexpect.readthedocs.org/de/latest/examples.html

Eine grundsätzliche Option ist die Verwendung von subprocess.Popen().communicate() :

http://pymotw.com/2/subprocess/#popen2

  • Python-Unterprozess Popen.communicate () entspricht Popen.stdout.read ()?
  • Wie man Unterprozeß mit Call / Popen aufruft, erlischt Umgebungsvariablen
  • Python: Teilprozeßaufruf mit Shell = False funktioniert nicht
  • Umleitungs-Teilprozeß stderr zu stdout
  • Wie kann ich einen Piped-String von Befehlen mit dem Python-Subprozess-Modul verwenden?
  • Python: Unterprozess mit verschiedenen Arbeitsverzeichnis
  • Erhalten der Adb-Ausgabe mit Python
  • Python - Teilprozesse und die Pythonschale
  • Python-Unterprozess Exec-Formatfehler
  • Python-Subprozesse (ffmpeg) startet erstmal, wenn ich das Programm gestartet habe?
  • Erläutern Sie das Beispiel aus dem Python-Unterprozessmodul
  • Python ist die beste Programmiersprache der Welt.