Search code examples
.netdebuggingreflector

Experience with .NET Reflector Pro


Does anyone have experience with .NET Reflector Pro (not the free version)?

I have searched for some way to easily debug an application in an external environment (e.g. a production server that is out of the office), and I found .NET Reflector Pro and its feature "Step into decompiled assemblies and use all the debugging techniques you would use on your own code".

It looks very useful, but I would like to hear about personal experience with the tool ... especially from people who are using it "every day".

Thanks!

EDIT: Some additional information: I would like to use this feature for debuging the old versions of a modular application (100+ modules in several versions) for hard-to-reproduce bugs that don't show up in a testing environment (e.g. combination of data in the database, current configuration of the server/client, etc.).

There is a way to rebuild the specified assemblies (sometime there are dozens of assemblies required) ... adding some issue-specific logging information. But, it takes a long time instead of easily debugging and looking at things such as local variables, fields, threads, etc.


Solution

  • Just ran across this post ... but I do have experience with .NET Reflector Pro. Overall, the debugging feature can really save your bacon (i.e. help you out) at times.

    In fact, I recently wrote a blog post on how to debug the .NET Framework source code using .NET Reflector Pro. This post will definitely give you some insight into my own experiences with the tool.

    http://www.cplotts.com/2011/01/14/net-reflector-pro-debugging-the-net-framework-source-code/

    I would also say that you might be hard pressed to find someone who uses the debugging feature every day. I use it only when I have to debug (or gain some insight on) very hard problems that are likely not in my own code but in the .NET Framework or some third-party assembly.

    Some might argue, "Why wouldn't you just use Visual Studio's native support?" Well, I do ... if I can, but not every assembly is supported. Also, sometimes the released bits get out of date with what's available on Microsoft's public symbol server ... that is, even the supported assemblies, aren't supported at certain times.

    Of course, .NET Reflector Pro also allows you to debug third-party assemblies where you have no access to the .pdbs and/or the source code. My blog post will be helpful in these situations as well. The post is a pretty generic 'how to' post on using the debugging feature.

    One obvious thing to point out/emphasize (as others have noted already), is that the debugging capabilities of .NET Reflector Pro can only be used from within Visual Studio. So, Visual Studio must be installed on the machines you are trying to debug on. Most production environments don't have (or allow you to install) a development environment on these machines. Therefore, it may not even be possible to use .NET Reflector Pro in your particular scenario.

    The free version of .NET Reflector only needs to be copied somewhere in order for it to work, so you could (at least) analyze (but not debug) the assemblies you are interested in.