I would like to kill my computer, but for now I will go home and restart 
tomorrow. Thanks for your help, would it be possible you'll help me a 
little bit more? 

Am Donnerstag, 8. Januar 2015 17:08:27 UTC+1 schrieb Reh Gina:
>
> Now I replace the ret instruction by using following code 
> [....]
>
>
>       Instruction popFTraceVariableInstruction = 
> Instruction.Create(OpCodes.Stloc, fTraceVar);
>       //Pop a value from stack and store into local variable at index.
>       ilProcessor.InsertAfter(newConstructorInstruction, 
> popFTraceVariableInstruction);
>
>       var endFinally = Instruction.Create(OpCodes.Endfinally);
>       var leave = Instruction.Create(OpCodes.Leave, endFinally);
>       var ret = Instruction.Create(OpCodes.Ret);
>
>       for (int i = 0; i < med.Body.Instructions.Count; i++)
>       {
>         Instruction instr = med.Body.Instructions[i];
>         //Console.WriteLine(instr.ToString());
>         if (instr.OpCode == OpCodes.Ret)
>         {
>           Instruction previous = instr.Previous;
>           ilProcessor.Remove(instr);
>           ilProcessor.InsertAfter(previous, 
> Instruction.Create(OpCodes.Leave, ret));
>         }
>       }
>       
>
>       //////// Start Finally block
>       Instruction loadFTraceVarInstruction = 
> Instruction.Create(OpCodes.Ldloca, fTraceVar);
>       ilProcessor.InsertAfter(med.Body.Instructions.Last(), 
> loadFTraceVarInstruction); //Loads local variable onto stack
>       //ilProcessor.InsertBefore(lastInstruction, 
> loadFTraceVarInstruction); //Loads local variable onto stack
>
> [...]
> [...]
>
>   ilProcessor.InsertAfter(callDisposeInstruction, endFinally);
>       //ilProcessor.InsertAfter(leave, endFinally);
>       Instruction nopInstruction = Instruction.Create(OpCodes.Nop);
>       ilProcessor.InsertAfter(endFinally, nopInstruction);
>       ilProcessor.InsertAfter(nopInstruction, ret);
>    
>       ///////// End finally block
>
>       var handler = new ExceptionHandler(ExceptionHandlerType.Finally)
>       {
>         TryStart = med.Body.Instructions.First(),
>         TryEnd = callDisposeInstruction,
>         HandlerStart = callDisposeInstruction,
>         HandlerEnd = nopInstruction,
>         //CatchType = mod.Import(typeof(Exception)),
>       };
> [...]
>
> PEVerify says: 
> [IL]: Error: 
> [O:\bin\x64\Debug\MeVis.BizLogic.Applications.LiverAnalysis.Viewing.ViewingCP.dll
>  
> : 
> MeVis.BizLogic.Applications.LiverAnalysis.Viewing.ViewingCP.AbstractTaskStepBEHandler::Dispose][offset
>  
> 0x000000A9] Stack underflow.
> [IL]: Error: 
> [O:\bin\x64\Debug\MeVis.BizLogic.Applications.LiverAnalysis.Viewing.ViewingCP.dll
>  
> : 
> MeVis.BizLogic.Applications.LiverAnalysis.Viewing.ViewingCP.AbstractTaskStepBEHandler::set_IsActive][offset
>  
> 0x00000027] jmp / exception into the middle of an instruction.
> [IL]: Error: 
> [O:\bin\x64\Debug\MeVis.BizLogic.Applications.LiverAnalysis.Viewing.ViewingCP.dll
>  
> :
> .....
>
>
> ARRRRGGGHHHHH
>
> Am Donnerstag, 8. Januar 2015 16:35:31 UTC+1 schrieb Jb Evain:
>>
>> The error means you can not have a ret instruction inside a protected 
>> block. 
>>
>> It means that if you're injecting protected blocks, you must make sure 
>> that rets in them are replaced by into leave opcodes, that are jumping 
>> outside of the protected block where you'll be able to return. 
>>
>> I'm afraid there's nothing built-in for this, you'll have to implement 
>> it. 
>>
>> Jb 
>>
>> On Thu, Jan 8, 2015 at 4:27 PM, Reh Gina <[email protected]> wrote: 
>> > Something with a return which ist not correct in try block, but how to 
>> I 
>> > remove it. Trying this to get work for almost 2 weeks 
>> > 
>> > Am Donnerstag, 8. Januar 2015 16:25:13 UTC+1 schrieb Reh Gina: 
>> >>> 
>> >>> Now the correct file attached 
>> > 
>> > -- 
>> > -- 
>> > -- 
>> > mono-cecil 
>> > --- 
>> > You received this message because you are subscribed to the Google 
>> Groups 
>> > "mono-cecil" group. 
>> > To unsubscribe from this group and stop receiving emails from it, send 
>> an 
>> > email to [email protected]. 
>> > For more options, visit https://groups.google.com/d/optout. 
>>
>

-- 
-- 
--
mono-cecil
--- 
You received this message because you are subscribed to the Google Groups 
"mono-cecil" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to