Retrieve JIT output

后端 未结 5 2059
Happy的楠姐
Happy的楠姐 2020-12-03 15:00

I\'m interested in viewing the actual x86 assembly output by a C# program (not the CLR bytecode instructions). Is there a good way to do this?

5条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2020-12-03 15:35

    While debugging your application in Visual Studio, you can right-click on a code where you have stopped (using breakpoint) and click "Go to Disassembly". You can debug through native instructions.

    As for doing that with *.exe files on disk, maybe you could use NGen to generate native output and then disassemble it (although I never tried that, so I can't guarantee that it will work).

    Here are some sample opcodes from simple arithmetic operation that was written in c#:

                int x = 5;
    mov         dword ptr [ebp-40h],5 
                int y = 6;
    mov         dword ptr [ebp-44h],6 
                int z = x + y;
    mov         eax,dword ptr [ebp-40h] 
    add         eax,dword ptr [ebp-44h] 
    mov         dword ptr [ebp-48h],eax 
    

提交回复
热议问题