Version History - mikebmcl/Msiler GitHub Wiki
Msiler 2.2.1
Bug fixes
- Fixed output executable path resolving when OutputPath based on SolutionDir property
- Fixed output executable path resolving when active project located in solution subdirectory
Msiler 2.2
New features
- Visual studio 2017 support (incl. Community version)
- Highlight active line: when enabled, active line in bytecode listing will be highlighed
- Show instruction description in listing: when enabled, instruction information will be shown before or after (based on setting) every instruction
Example: when Instruction description mode = disabled
IL_0013 | 16 | ldc.i4.0
IL_0014 | 0C | stloc.2
IL_0015 | 2B48 | br.s IL_0089
when Instruction description mode = BeforeLine
// ldc.i4.0: Push 0 onto the stack as int32.
IL_0013 | 16 | ldc.i4.0
// stloc.2: Pop a value from stack into local variable 2.
IL_0014 | 0C | stloc.2
// br.s: Branch to target, short form.
IL_0015 | 2B48 | br.s IL_0089
when Instruction description mode = AfterInstruction
IL_0013 | 16 | ldc.i4.0 // ldc.i4.0: Push 0 onto the stack as int32.
IL_0014 | 0C | stloc.2 // stloc.2: Pop a value from stack into local variable 2.
IL_0015 | 2B48 | br.s IL_0089 // br.s: Branch to target, short form.
- Clickable offsets in listing: you can get to offset of function under cursor by double click of middle mouse button
Changes
- Removed support for old VS versions. Last version with VS2012/2013/2015 support can be downloaded here
Msiler 2.1.1
Bug fixes
- Bug fixed: follow mode did not work with nested types
- Bug fixed: follow mode did not work with methods which has multidimensional array parameters
Msiler 2.1
New features
- Visual Studio 2012 Support
- Follow mode - when enabled, listing will be updated when editor caret position is changed. Disabled by default and can be enabled by "Follow mode" checkbox below listing. Can slightly decrease performance. At this time this feature works only with C#.
- PDB files processing - when enabled, Msiler will read information from PDB files and display source lines associated with instuctions (when available). If source code was changed after building, extension can display invalid source code. Rebuilding should fix this issue. Enabled by default, can increase listing generation time.
- Show instuction bytes option - when enabled, extension will read instruction bytes. Disabled by default, can increase listing generation time.
- Show number in different bases with tooltip
- Added IL Instructions Help window
Bug fixes
- Numbers highlighting fix
- Parameters of non-static methods not handling correctly
Changes
- Bytecode listing caching: should improve overall performance. Cache will be cleaned when any listing generation option was changed or on solution unload.
- Options was divided into several Dialog Pages. "Options" link now opens menu instead of general dialog page.
- Exception handling: when extension can't generate listing, exception message and stacktrace will be displayed instead.
- "Simplify function names" feature was extended
- Added "What's new" link to welcome screen
Msiler 2.0
New features
- Copy listing feature (
CTRL+C
or from context menu) - Implemented proper Visual Studio color theme detection (dark or light)
- Implemented options dialog page with some extension options
- Show parameters list after function name in method list
- Display simple documentation and options/github links when solution is not opened or project is not built
Syntax highlighting
- Numbers highlighting (includes HEX values)
- String highlighting (with
ldstr
OpCode) - Built-in types highlighting (https://msdn.microsoft.com/en-us/library/ya5y69ds.aspx)
New options
Global options
- Update listing only if toolbox is visible - if enabled, bytecode listing will be updated, only if Msiler windows is visible. It can be useful, because hidden Msiler window will not perform any actions. This feature should be disabled, if you has Msiler as background tab (for example), because in this case bytecode content will not be updated. (default: true)
User interface
- Font name: Bytecode listing font name (default: Consolas)
- Font size: Bytecode listing font size (default: 12)
- Show line numbers: if enabled line numbers will be displayed (default: true)
- Color theme: color theme can be selected manually. This option can be useful if you use non-standard Visual Studio themes (default: Auto)
Excluded methods
Some methods now can be excluded from method list:
- Exclude getters/setters - generated getters/setters (methods started with
get_
orset_
) will be excluded from method list (default: false) - Exclude special (anonymous) methods - anonymous methods (methods contains
<
and>
characters in names) will be excluded from method list (default: false) - Exclude constructors - contructors (
.ctor
methods) will be excluded from method list (default: false)
Listing generation options
- Ignore NOPs - if true, extension will ignore all NOP instructions (
0x00
bytes) (default: false) - Display numbers as HEX values - if true, numbers in listing will be displayed as hex values (for example
123
will be displayed as0x7B
) (default: false) - Simplify function names - if true, function names will be simplified (experimental) (default: false)
- Upcased instruction names - if true, all OpCode names will be upcased (
ldarg.0
will be displayed asLDARG.0
) (default: false) - Align listing - if true, all instructions in listing will be aliged (default: false)
- Display function names in listing - if true, function name will be prepended to bytecode listing.
- Display offsets as decimal numbers
Example: With disabled option
IL_0010 brtrue.s IL_0026
IL_0012 call WTManager.ConfigManager.get_Preferences
IL_0017 callvirt WTManager.Preferences.get_EditorPath
IL_001C call System.IO.File.Exists
IL_0021 ldc.i4.0
With enabled option
IL_0010 brtrue.s IL_0026
IL_0012 call WTManager.ConfigManager.get_Preferences
IL_0017 callvirt WTManager.Preferences.get_EditorPath
IL_001C call System.IO.File.Exists
IL_0021 ldc.i4.0
Bug fixes
- When no solution project(s) files is opened, extension throw an exception. Now, active startup project will be disassembled.
- Bytecode listing is not updated between solution change/reopen
- Overloaded functions shown same listing
- Bytecode listing does not shown after unloading and rebuilding project without any changes
Changes
- New extension icon
- Bottom tooltip with OpCode information was removed
- Current function name between methods list and bytecode listing was removed
- Removed generic indicator (like `1) from type name part
- Performance: Check assembly last write date instead of MD5 hash
- Added "About" windows
- Updated VSIX preview
Msiler 1.1
- Visual Studio 2015 support (was tested in RC version)
- Hide nop instructions feature
- Clear processed data on solution unload
- Process asembly only if Msiler tool window is visible
- Do not reanalyse data if output assembly was not changed
- Simple function names instead of full signatures
- Other fixes and optimizations
Msiler 1.0
First version