我们在我们的应用程序中使用嵌入式CPython作为脚本语言。我们在启动时修改sys.path以确保我们不执行来自我们应用程序之外的代码,但是一个在PYTHONPATH中有sitecustomize.py的用户会导致在我们有机会修复sys.path之前执行代码,并且我们认为他们的代码有一个硬错误(不是异常,site.py将捕获并优雅处理异常)。
我相信正确的修复方法是在初始化Python之前从环境中简单清除PYTHONPATH变量,但是我无法正确测试它,因为我无法重新创建这个问题。
我找到的最简单的方法是使用ctypes写入内存,例如:
我相信正确的修复方法是在初始化Python之前从环境中简单清除PYTHONPATH变量,但是我无法正确测试它,因为我无法重新创建这个问题。
我找到的最简单的方法是使用ctypes写入内存,例如:
import ctypes
p = (ctypes.c_char).from_address(0)
while True:
p[0] = 0
p = p + 1
然而在Python 3.5中,它不允许我写入c_char类型,会给出错误提示 "TypeError: 'c_char' object does not support item assignment"。
我已经尝试了一些在 https://wiki.python.org/moin/CrashingPython 上提供的方法,但都没有成功。
是否有一种可靠的方法可以从纯Python代码中使python 3.5崩溃?
c_char
的 指针 并对其进行索引。 - user2357112