Как имитировать ошибку Segmentation Fault в коде и уронить процесс интерпретатора?
🔸 Форсированно завершаем процесс через kill и exit code 11.
__import__('os').kill(__import__('os').getpid(), 11)
Но это просто быстрый выход. 🔸 Делаем что-то что вызовет ошибку со страшным сообщением что всё сломалось! Перегружаем стек вызова рекурсией, заведомо увеличив лимит до не приличия высоко.
__import__('sys').setrecursionlimit(1<<30);f=lambda f:f(f);f(f)
🔸Ломаем парсер AST__import__('ast').literal_eval('1+1'*10**6)
Все эти вызовы приводят к такой ошибке:Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)Хм... а зачем это может быть нужно?
Может кому-то хотите устроить подлянку 👹, а может тестируете дебагер.
Таким падением можно "указать" юзеру что он зашел куда не следует чтобы больше так не делал 😨
Всё это надуманные примеры. Но тем не менее, теперь вы теперь знаете как это сделать😉.
PS. Не советую использовать этот код в рабочих проектах!
#tricks