define fault_inject
if $argc != 2
echo 'Two arguments required\n'
else
python gdb.execute('break *%s' % gdb.execute('disassemble $arg0', to_string=True).split('\n')[-3].split()[0])
python gdb.execute('commands\nsilent\nreturn $arg1\ncontinue\nend')
end
end
define my_program_fault_inject
fault_inject my_function 43
end
$ gdb a.out # начинаем дебажить нашу программу (через IDE это делается автоматически)
(gdb) start # ставим брейпоинт в функции main и запускаем (небходимо для создания процесса)
(gdb) my_program_fault_inject # вставляем все наши fault injections
(gdb) c # продолжаем выполнение
или