You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your feature request related to a problem? Please describe.
Some assemblies have huge methods with complex logic. ILSpy decompiles them with generic variable names. It takes time to understand the meaning of the variables. It would be helpful for programs that specialize the decompiling capability provided by ILSpy for their specific use cases, if ILSpy would provide a way for the driver program to hook into the variable name generation part
Describe the solution you'd like
An interface or hook for the driver program to provide suggested names to ILVariables
Additional context
In the C# game modding context, we would like to track changes to the main assembly and possibly share our own local name mapping with fellow modders (it would be problematic to share the entire decompiled source).
I have modified ILSpy a tiny bit here to help provide a map of local names with the driver program
I believe this is a common problem for modders in general, so it would be beneficial to have a common, better way of doing this
The text was updated successfully, but these errors were encountered:
There's already an interface IDebugInfoProvider intended for proving pluggable support for debug information (e.g. different .pdb file readers). This includes the functionality to provide variable names for local slots via the TryGetName method.
That is what I used initially
However, it doesn't cover StackSlot variables - the intermediate variables introduced by ILSpy for the sake of readability
What I'm describing is a way to extend or hook into the name generation part, rather than a mapping of locals to variable names
I have noticed a related issue
The variable name generation in ILSpy.Decompilation performs name collision checks on the entire method, I assume for performance and simplicity reasons.
For the reasons stated initially in this thread, long methods result in loop index variables, loop enumerator variables, and similar limited scope variables having unnecessary number suffixes appended to them.
Would modifying the logic to perform scope-based name collision detection be a good enhancement to ILSpy.Decompilation in general?
Is your feature request related to a problem? Please describe.
Some assemblies have huge methods with complex logic. ILSpy decompiles them with generic variable names. It takes time to understand the meaning of the variables. It would be helpful for programs that specialize the decompiling capability provided by ILSpy for their specific use cases, if ILSpy would provide a way for the driver program to hook into the variable name generation part
Describe the solution you'd like
An interface or hook for the driver program to provide suggested names to
ILVariable
sAdditional context
In the C# game modding context, we would like to track changes to the main assembly and possibly share our own local name mapping with fellow modders (it would be problematic to share the entire decompiled source).
I have modified ILSpy a tiny bit here to help provide a map of local names with the driver program
I believe this is a common problem for modders in general, so it would be beneficial to have a common, better way of doing this
The text was updated successfully, but these errors were encountered: