Возможно ли использовать инструменты GNU (gcc, binutils и т. Д.), Чтобы преобразовать все вхождения инструкции по сборке в no-op? В частности, gcc с параметром -pg генерирует следующую сборку (ARM):
0x0: e1a0c00d mov ip, sp
0x4: e92dd800 stmdb sp!, {fp, ip, lr, pc}
0x8: e24cb004 sub fp, ip, #4 ; 0x4
0xc: ebfffffe bl 0 <mcount>
Я хочу записать адрес этой последней инструкции, а затем изменить его на nop, как в следующем коде
0x0: e1a0c00d mov ip, sp
0x4: e92dd800 stmdb sp!, {fp, ip, lr, pc}
0x8: e24cb004 sub fp, ip, #4 ; 0x4
0xc: e1a00000 nop (mov r0,r0)
Ядро Linux может делать нечто подобное во время выполнения, но я ищу решение во время сборки.