I guess this is more of an IL instruction but I'd appreciate any help
all the same.
I need to add a method call at the end of an arbitrary set of methods.
The Instructions I'm emitting are fine for most methods - I'm adding
my new Instructions before the last found instruction with a Ret code:
var returnInstruction =
method.Body.Instructions.LastOrDefault(i => i.OpCode.Code ==
Code.Ret);
....
foreach (Instruction instruction in exitInstructions)
{
processor.InsertBefore(returnInstruction,
instruction);
}
However, sometimes this approach bombs and I get an Invalid Program
exception, which seems to happen when there is a Br_S instruction
before the Ret instruction....which I guess makes sense.
So, my question is...how can I reliably determine where to insert my
new instruction(s) at the end of the method, before it returns?
Thanks in advance.
--
--
mono-cecil