Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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.

like image 238
TcKs Avatar asked Mar 01 '10 11:03

TcKs


3 Answers

It does look pretty cool, but I doubt that it will be useful very often.

Most of the time the bug is probably in my own code for which I have source, PDBs and the lot, so I don't need Reflector for that. With the option to debug Microsoft framework code I don't need Reflector Pro for that either. So the use case for Reflector Pro seems to be debugging third party libraries. Obviously these will be the source of some bugs from time to time and in those cases Reflector Pro may be worth its price.

However, the "only" thing it adds is the ability to seamlessly debug these. You can still look at the code with the plain vanilla edition of Reflector. In my experience that is enough in most cases.

I admit that I could be wrong here, but my gut feeling is that the free edition will be enough for a lot of users. In any case, I am in no rush to pay $200 for that specific feature.

like image 104
Brian Rasmussen Avatar answered Nov 20 '22 16:11

Brian Rasmussen


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.

like image 33
cplotts Avatar answered Nov 20 '22 17:11

cplotts


In the link you posted, it is written this "NET Reflector Pro is an add-in to Visual Studio that lets you debug third-party code and assemblies, even if you don't have the source."

So, you can use it only on a development machine ... because I doubt the user has Visual Studio on a production machine.

like image 3
IordanTanev Avatar answered Nov 20 '22 15:11

IordanTanev