среда, 7 декабря 2022 г.

CIL Tools v2.5 is released


The new version contains the following changes:

CilTools.BytecodeAnalysis

  • Add IReflectionInfo interface to enable custom properties on reflection objects (implemented by classes in CilTools.Metadata)
  • Add CilInstruction.ToSyntax()
  • Add Disassembler.GetAssemblyManifestSyntaxNodes
  • Add IParamsProvider interface (enables getting method parameters without resolving external assembly references, implemented by classes in CilTools.Metadata)
  • Support parameters and return type custom attributes
  • Support field custom attributes
  • Support .override and .vtentry directives
  • Support events in type disassembler
  • Support vararg sentinel (...) in method signatures
  • Support specialname and rtspecialname attributes on methods
  • Skip assembly name for types in the same assembly
  • Escape special characters in identifiers
  • Escape slash in string literals
  • Fix base type syntax in GetTypeDefSyntax
  • Fix TypeSpec.IsValueType for byref target types and generics
  • Fix extra whitepaces after directive names
  • Fix constructors to have void return type in disassembled CIL
  • Fix ldtoken syntax for types
  • Fix CilParserException when exception handler block closes after the last instruction in the method body
  • Fix literal syntax for enum and boolean types
  • Fix serializable attribute handling
  • Fix type name representation in syntax API (now namespace is handled as a separate identifier token)
  • Fix detection of <Module> type (global fields and functions)

CilTools.Runtime

  • Implement GetReferencedAssemblies and ManifestModule on DynamicMethodsAssembly

CilTools.CommandLine

  • Add view-source command
  • Add fileinfo command
  • Add support for viewing assembly manifest to view command
  • Add assembly disassembling support to disasm command
  • Roll-forward to next major versions of .NET Runtime
The view-source command enables you to display source code of the specified method based on info in debugging symbols (if they are present) or decompiled source (currently only a limited decompilation support for methods without body, i.e, abstract or pinvoke). 

The fileinfo command displays information about assembly files, such as PE header data or assembly-level custom attributes.

The Roll-forward feature means that you can run the app on .NET 5.0+, even though it targets .NET Core 3.1.

CIL View

  • Add Source Link support for Portable PDB symbols
  • Add source code syntax highlighting
  • Add instruction info
  • Add IL syntax highlighting in SourceViewWindow
  • Add support for viewing assembly manifest and Export assembly to file menu command
  • Add Recent files menu
  • Add HTML help
  • Change default filter in Open File dialog to include all supported file types (instead of only .dll and .exe)
  • Disable formatted view for .il files larger then 1 MB
  • Support viewing separate types from .il files
  • Load .il files in background

New Source view UI look with syntax highlighting:



суббота, 9 июля 2022 г.

ErrLib v1.1 update

The new version of ErrLib was released. Changes in the new version: 



понедельник, 2 мая 2022 г.

Обновление Small Media Player - v2.4

Вышла новая версия Small Media Player: загрузить на Github Releases.

Изменения в новой версии:

  • Теперь для воспроизведения файла проигрыватель сначала пытается использовать режим Media Foundation, а если файл воспроизвести в нем невозможно, использует DirectShow (ранее было наоборот)
  • Добавлена возможность просмотра информации о форматах мультимедиа в режиме Media Foundation
  • Переработан регулятор громкости, так чтобы изменение уровня громкости в режимах Media Foundation и DirectShow происходило одинаково
  • Исправлены проблемы с производительностью при перемотке на большой промежуток времени в режиме Media Foundation
  • Исправлено блокирование воспроизведения модальным диалоговым окном при возникновении ошибки в режиме Media Foundation
  • Исправлена ошибка Access violation при завершении воспроизведения файла в режиме Media Foundation
  • Исправлена некорректная перерисовка окна видео во время паузы
  • Исправлена ошибка при попытке воспроизвести видеофайл на машине, не имеющей ни одного активного звукового устройства

воскресенье, 20 февраля 2022 г.

CIL Tools update 2.4

 A new CIL Tools update is released. The update contains a new project, CilTools.CommandLine, as well as some changes and fixes to existing projects.

Download on GitHub releases

Changes in the new version:

General

  • New project: CilTools.CommandLine

CilTools.BytecodeAnalysis

  • Add support for including bytecode size and source code lines in disassembler output
  • Add support for .entrypoint directive
  • Add support for generic constraints
  • Add support for properties in disassembler
  • Add ICustomMethod interface as a base for custom method implementations to replace CustomMethod base class. This means that custom method implementations can now be derived from MethodInfo or ConstructorInfo.
  • Improve generics support. Generic context is now passed correctly to generic parameter types is more cases; this enables getting generic parameter names and their declaring methods/types.
  • Fix TypeSpec.IsGenericParameter for byrefs
  • Fix ldtoken syntax for methods
  • Fix string literal escaping in disassembler to use ECMA-335 rules

CilTools.Runtime

  • Update custom method implementations to derive from MethodInfo/ConstructorInfo and implement ICustomMethod

CIL View

  • Add support for opening C#/VB code and MSBuild projects
  • Add Show source support
  • Add options to include bytecode size and source code lines (from PDB) in disassembler output
  • Add support for opening IL source files
  • Add support for .entrypoint directive
  • Add Export type to file menu command
  • Add support for generic constraints
  • Add support for disassembling properties
  • Add support for interactive method execution
  • Use .NET Core runtime directory when resolving dependencies for .NET Core assemblies
  • Use runtime directory of the inspected process instead of current runtime directory for assembly resolution when opening a process
  • Load assembly images from memory instead of files when opening a process
  • When an assembly contains a single type, automatically navigate to that type
  • When the type contains only one non-constructor method and no other members (like fields), automatically navigate to that single method when type is selected
  • Change member identifier color to more visible with lower brightness
  • Fix ldtoken syntax for methods
  • Fix string literal escaping in disassembler to use ECMA-335 rules