Welcome to MSDN Blogs Sign in | Join | Help

It's 10 pm, do you know what your JITter is doing?

Ever have that awkward feeling like you don't know what actually gets executed as a result of your managed code? Visual Studio allows you to inspect the JITted code easily but does require a few tweaks first:

  1. First set your project to build in Release mode.
  2. Next go to Tools|Options|Debugging and uncheck both Suppress JIT optimization on module load (Managed only) and Enable Just My Code (Managed only)

Now you can run your project and set a breakpoint where you want to look at code and go to Debug | Windows | Disassembly to get an annotated disassembly like the following: 

    static void Main(string[] args)
    {
        DoTest();
00000000 push ebp
00000001 mov ebp,esp
00000003 push esi
00000004 call dword ptr ds:[00159B7Ch]

        Console.WriteLine(s);
0000000a mov esi,dword ptr ds:[037D5B20h]
00000010 call 6B20BE78
00000015 mov ecx,eax
00000017 mov edx,esi
00000019 mov eax,dword ptr [ecx]
0000001b call dword ptr [eax+000000D8h]
00000021 pop esi

    }
00000022 pop ebp
00000023 ret  
Published Friday, November 13, 2009 1:52 PM by Kristoffer
Filed under:

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

No Comments

Leave a Comment

(required) 
required 
(required) 

  
Enter Code Here: Required
 
Page view tracker