Во-первых, я хотел бы отметить, что единственный надежный способ segfault, о котором я знаю, - это посылать сигнал SIGSEGV вашему собственному процессу, возможно, с использованием функции «поднять» или эквивалента ржавчины.
Разыменование указателя на нераспределенную память или нулевой указатель на самом деле не гарантирует segfault, хотя это происходит на большинстве современных платформ.
Самый простой способ проверить наличие segfault - это запустить вашу программу (возможно, используя nix crate ). После этого выполните функцию, которая должна сделать вас segfault на дочернем процессе, пока родительский процесс ожидает.
После ожидания достаточного количества времени (превышение которого составляет несколько сотен миллисекунд) убедитесь, что дочерний поток не работает. Для этого просто убейте его, и должна появиться ошибка, если она уже мертва.