G
Guest
Hello,
I know tools like Lutz Roeder's Reflector can be used to disassemble an
assembly into any number of .NET languages and this is invaluable for
debugging 3rd party (e.g. Microsoft) components. There are many times when
debugging my own code leads deep into a 3rd party component and an exception
may occur within that 3rd party component. By using VS' debugger, I can see
the call stack, which gives me information on the method that raised the
exception but of course I can't debug the code to see the arguments and the
exact managed statement that caused a problem.
I'm aware of tools like Mike Stall's Mdbg that allows one to go to the
disassembly of .NET assembly during runtime. As cool as this is, it is
limited by the fact that you can't see the value of any variables; you can
step through the IL but you can't view any locals which greatly limits its
use for debugging.
The only thing I can think of to achieve effective debugging (short of
looking at the native disassembly which I'm not brave enough to try) is to
disassemble the 3rd party assembly and then rebuild it with debug symbols.
This is where my question comes in. Does any tool you know of allow one to
take an assembly and generate C# (or VB .NET) source code for the entire
assembly, rather than on a method by method basis such that it is easy to
rebuild the assembly? A problem I see in rebuilding the assembly would be to
ensure that rebuilt assembly is signed with the identical strong name as the
orginal assembly so that references from other code are still valid and I
don't have to rebuild a large tree of assemblies. Is this possible?
Thanks you,
Notre
I know tools like Lutz Roeder's Reflector can be used to disassemble an
assembly into any number of .NET languages and this is invaluable for
debugging 3rd party (e.g. Microsoft) components. There are many times when
debugging my own code leads deep into a 3rd party component and an exception
may occur within that 3rd party component. By using VS' debugger, I can see
the call stack, which gives me information on the method that raised the
exception but of course I can't debug the code to see the arguments and the
exact managed statement that caused a problem.
I'm aware of tools like Mike Stall's Mdbg that allows one to go to the
disassembly of .NET assembly during runtime. As cool as this is, it is
limited by the fact that you can't see the value of any variables; you can
step through the IL but you can't view any locals which greatly limits its
use for debugging.
The only thing I can think of to achieve effective debugging (short of
looking at the native disassembly which I'm not brave enough to try) is to
disassemble the 3rd party assembly and then rebuild it with debug symbols.
This is where my question comes in. Does any tool you know of allow one to
take an assembly and generate C# (or VB .NET) source code for the entire
assembly, rather than on a method by method basis such that it is easy to
rebuild the assembly? A problem I see in rebuilding the assembly would be to
ensure that rebuilt assembly is signed with the identical strong name as the
orginal assembly so that references from other code are still valid and I
don't have to rebuild a large tree of assemblies. Is this possible?
Thanks you,
Notre