Вопросы по теме 'cil'

Виртуальная машина Java и среда CLR
Как своего рода продолжение вопроса под названием Различия между байт-кодом MSIL и Java? , в чем (основные) различия или сходства в том, как работает виртуальная машина Java, и в том, как работает среда CLR (Common Language Runtime) .NET Framework ?...
43364 просмотров
schedule 09.05.2024

MSIL: лишняя ветвь
Рассмотрим этот фрагмент C#: static string input = null; static string output = null; static void Main(string[] args) { input = "input"; output = CallMe(input); } public static string CallMe(string input) { output = "output";...
363 просмотров
cil
schedule 12.02.2022

Связывание дерева выражений .NET с новой сборкой
Я пытаюсь написать свою собственную игрушку My Toy Language -> Компилятор MSIL, чтобы лучше понять, как работают компиляторы. У меня работают синтаксический анализ и лексирование, я построил деревья выражений и, используя API дерева выражений...
1523 просмотров

Почему необходимо загружать каждый аргумент в стек в методе CIL?
в моем приложении мне нужно динамически создать тип, который содержит несколько свойств. Я знаю, что в подобных случаях необходимо сгенерировать CIL как для методов получения, так и для установки свойства с помощью ILGenerator. Больше методом проб...
410 просмотров
schedule 25.07.2022

Создание DynamicType в .NET, реализующего интерфейс, но использующего реализации членов из базового класса
Я пытаюсь создать динамический класс, реализующий интерфейс, но в котором один или несколько членов уже существуют в базе. Я скомпилировал следующий код на C # и изучил его в отражателе, чтобы узнать, что делает компилятор C #. class BaseClass {...
2219 просмотров
schedule 29.04.2024

cecil: типы Instruction.Operand, соответствующие значению Instruction.OpCode.Code.
Есть ли какая-либо документация или часть исходного кода cecil, с которой я могу ознакомиться, чтобы получить полное представление о том, какие Operand типы cecil будут использовать для заданного Code значения? Например: я могу узнать из...
3447 просмотров
schedule 07.11.2022

Динамически заменять содержимое метода C #?
Я хочу изменить способ выполнения метода C # при его вызове, чтобы я мог написать что-то вроде этого: [Distributed] public DTask<bool> Solve(int n, DEvent<bool> callback) { for (int m = 2; m < n - 1; m += 1) if (m % n ==...
70896 просмотров
schedule 04.11.2023

Почему директива .MaxStack является необязательной в коде MSIL?
Я изучаю язык ассемблера в свободное время. Кто-нибудь может объяснить, почему .maxstack кажется необязательным в этой программе. Я пытался найти ответ в Интернете и в своей книге, но безуспешно, т.е. программа будет компилироваться и работать с...
2002 просмотров
schedule 23.12.2023

Прочитайте LocalSignature DynamicMethod: токены нестандартного типа?
Недавно я начал использовать ILVisualizer в VS2010 для проверки IL на наличие динамических методов. Однако он не извлекает информацию LocalVariable из потока IL, поэтому я попробую (конечно, ради удовольствия и потому, что это хороший опыт обучения...
162 просмотров
schedule 25.10.2023

Можно ли использовать BitConverter для надежного извлечения многобайтовых значений из потока байтов IL (возвращаемого методом MethodBody.GetILAsByteArray)?
Я работаю над некоторым кодом, который анализирует массивы байтов IL, возвращаемые MethodBody.GetILAsByteArray . Допустим, я хочу прочитать токен метаданных или 32-битную целочисленную константу из такого потока байтов IL. Сначала я думал...
167 просмотров

Как использовать код операции .net cil jmp
Я пытаюсь заставить код операции jmp работать в Cil. jmp void ILTest.Program::MyFunc2(int32) С ilasm все в порядке, но когда я запускаю программу, я всегда получаю исключение «среда выполнения общего языка обнаруживает недопустимую...
1204 просмотров
schedule 06.06.2024

Метод FromEvent общего назначения
Используя новую модель async/await, довольно просто сгенерировать Task , которое завершается при срабатывании события; вам просто нужно следовать этому шаблону: public class MyClass { public event Action OnCompletion; } public static Task...
2583 просмотров

.assembly и .module в CIL
Возможный дубликат: модуль .NET и сборка Я только начал изучать CIL и увидел то, что меня смутило: .assembly и .module . В чем разница между ними? Где можно об этом прочитать?
53 просмотров
schedule 28.01.2023

Операторы.ConditionalCompareObjectEqual декомпилированы из VB.NET
Я декомпилировал некоторый старый код из устаревшего приложения VB.NET с помощью ILSply, и появилась эта строка: Operators.ConditionalCompareObjectEqual(safeDataReader["isLoader"], -1, false) Я знаю, что это сгенерировано компилятором, но не...
1134 просмотров
schedule 19.07.2022

Почему компилятор Scala для .NET игнорирует значение val?
Я играю со Scala. И я нашел 3 интересных вещи (название третье). 1 локальная переменная, объявленная как val, не интерпретируется как final. class HowAreVarAndValImplementedInScala { var v1 = 123 val v2 = 456 def method1() = { var...
831 просмотров
schedule 26.10.2023

В .NET, наконец, эквивалентно try-catch-throw?
Я пишу инструмент статического анализа для CIL. Анализ потока управления был бы упрощен, если бы блоки finally можно было интерпретировать как блоки try-catch с повторным броском внутри catch. В С# я не вижу разницы между try { // ... }...
640 просмотров
schedule 25.05.2022

Методы MSIL, не требующие ret
Я недавно поигрался с написанием MSIL и компиляцией его с помощью ilasm, когда заметил, что методы действительно требуют инструкции ret для возврата из конца метода; Например, я должен написать такой код: .method static void Main() {...
1003 просмотров
schedule 08.09.2022

Как компилятор Visual Studio компилирует атрибуты безопасности в CIL?
У меня есть следующий атрибут SecurityPermission(SecurityAction.Assert) в методе моего класса. Я компилирую его (отладочная сборка) и просматриваю вывод в ildasm.exe, просматривая необработанные кучи и просматривая кучу больших двоичных объектов,...
153 просмотров
schedule 15.03.2022

Неверный путь к файлу и номер строки в трассировках стека исключений из динамического кода
Мы используем System.Reflection.Emit для генерации кода во время выполнения из исходного кода (да, как в компиляторе). Мы предоставляем правильную информацию о символах в ILGenerator с помощью MarkSequencePoint и т. д. и включаем все флаги отладки в...
719 просмотров
schedule 10.07.2023

Почему программа с PEVerified Stack Overflow Scenario (maxstack) не приводит к сбою среды CLR?
Я могу написать, скомпилировать и успешно запустить следующую IL-программу с размером .maxstack, установленным равным 1, что слишком мало, потому что программа имеет два значения в стеке в один момент времени (т. е. 2+2==4). Эта программа не...
2356 просмотров
schedule 10.09.2022