Роняем Python в одну строку
Как имитировать ошибку 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
A useful command when you encounter conflicts while cherry-picking:
tig HEAD $(git rev-parse CHERRY_PICK_HEAD 2>/dev/null) -- $(git diff --name-only --diff-filter=U | head -1)
#tricks@sudo_recast