Есть ли простой способ получить все локальные переменные в текущем кадре стека в C # (или CIL)

Следуя моему предыдущему вопросу, в который я хотел выгрузить все переменные в стеке (из текущего и всего предыдущего кадра), которые можно увидеть здесь: Есть ли способ проверить переменные стека во время выполнения на C #?

Мне предложили перехватывать вызовы вручную или использовать фреймворк АОП, например PostSharp, чтобы упростить такую ​​задачу. Я посмотрел на PostSharp, и аргументы перехвата не t включить переменные в текущий кадр стека. Интересно, есть ли простой способ автоматически получить все локальные переменные в текущем фрейме стека. Полагаю, я могу выполнить анализ кода и сгенерировать код, который копирует все эти значения в коллекцию, но, возможно, есть встроенный механизм, который это делает.

Заранее благодарим за любые предложения.

РЕДАКТИРОВАТЬ: Я должен был иметь более подробно объясняется, почему я хочу это сделать. Я хочу иметь возможность приостанавливать выполнение в середине метода. Если бы у меня было содержимое стека, я мог бы возобновить выполнение позже или даже сериализовать его и продолжить его на другой машине (при условии, что это относительно простой код, например, без потоков или ввода-вывода). Можно запустить инструмент анализа кода, который позволит мне автоматически сгенерировать дополнительный код, сохраняющий это состояние. Думаю, для этого мне, вероятно, придется проанализировать CIL.

9
задан Community 23 May 2017 в 10:29
поделиться