Вопросы по теме '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 просмотров
schedule
12.02.2022
Связывание дерева выражений .NET с новой сборкой
Я пытаюсь написать свою собственную игрушку My Toy Language -> Компилятор MSIL, чтобы лучше понять, как работают компиляторы. У меня работают синтаксический анализ и лексирование, я построил деревья выражений и, используя API дерева выражений...
1523 просмотров
schedule
01.05.2023
Почему необходимо загружать каждый аргумент в стек в методе 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 просмотров
schedule
18.03.2024
Как использовать код операции .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 просмотров
schedule
04.08.2022
.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