Wir verwenden embedded cpython als Skriptsprache in unserer App. Wir modifizieren unseren sys.path beim Start, um sicherzustellen, dass wir keinen Code von außerhalb unserer App ausführen, aber ein Benutzer mit einer sitecustomize.py in ihrem PYTHONPATH verursacht die Ausführung von Code, bevor wir sys.path reparieren können und wir glauben, dass ihr Code einen schweren Absturz hat (keine Ausnahme, die von site.py korrekt erfasst und behandelt wird).Wie kann ich Python 3.5 zum Absturz bringen?
Ich glaube, die richtige Lösung ist einfach die PYTHONPATH-Variable aus der Umgebung zu löschen, bevor wir Python initialisieren, aber ich kann es nicht richtig testen, weil ich das Problem nicht neu erstellen kann.
Der einfachste Weg, die ich gefunden habe ist ctypes mit dem Speicher, wie zum Beispiel schreiben:
import ctypes
p = (ctypes.c_char).from_address(0)
while True:
p[0] = 0
p = p + 1
Aber in Python 3.5, es erlaubt mir nicht, Typen zu schreiben, c_char den Fehler geben "TypeError: 'c_char' Objekt unterstützt keine Artikelzuweisung".
Ich habe ein paar der verfügbaren Methoden in https://wiki.python.org/moin/CrashingPython vergeblich versucht.
Gibt es eine zuverlässige Möglichkeit, Python 3.5 aus reinem Python-Code zum Absturz zu bringen?
Sie sollten einen * Zeiger * zu einem 'c_char erstellen 'und indizieren das. – user2357112
haben Sie alle Beispiele auf http://svn.python.org/view/python/trunk/Lib/test/crashers/ getestet? Ich habe keinen Zugriff auf 3.5, aber einige scheinen beim Ausführen auf repl.it abzustürzen, nämlich: [nasty_eq_vs_dict.py] (http://svn.python.org/view/python/trunk/Lib/test /crashers/nasty_eq_vs_dict.py?view=log), [mutation_inside_cyclegc.py] (http: // svn.python.org/view/*checkout*/python/trunk/Lib/test/crashers/mutation_inside_cyclegc.py?content-type=text%2Fplain), [gc_inspection.py] (http://svn.python.org/view /*checkout*/python/trunk/Lib/test/crashers/gc_inspection.py?content-type=text%2Fplain) – davedwards
Danke, @ user2357112, ich habe Ctypes vorher nicht verwendet und habe nur Code kopiert und eingefügt, aber das Für mich macht es jetzt offensichtlich Sinn, dass ich genauer hinschaue. – alvion