Есть ли эмулятор процессора или способ увидеть, как вещи создаются и уничтожаются - PullRequest
1 голос
/ 24 августа 2010

Хорошо, этот вопрос не совсем вопрос программирования, но именно это может сделать программирование более практичным и простым в реализации.

Этот вопрос возникает из-за того, что каждый раз, когда я пишу int c=10; или MyClass objMyClass=new MyClass(); Я хочу увидеть, где в памяти было создано значение (хотя мы можем теперь видеть адрес как шестнадцатеричное значение).

Можем ли мы увидеть (когда мы объявляем переменную), где она создается в памяти? В каком состоянии, т. Е. C#->IL->Machine Language, находится переменная в памяти. Теперь, как различные события и функции обновляют свое значение. Это просто что-то вроде моего эмулятора процессора.

Я спрашиваю, потому что этот вопрос долго возникал? Всякий раз, когда я узнаю новую концепцию, рефлекс - «Хорошо, как это выглядит в памяти».

Ответы [ 3 ]

4 голосов
/ 24 августа 2010

Вы можете увидеть все это и многое другое, если загрузите расширение SOS.dll (или PSSCOR2.dll) в WinDbg или даже в Visual Studio.

SOS является частью платформы .NET и в основном этопревращает собственный отладчик, такой как WinDbg, в отладчик с поддержкой управляемого кода.

В SOS есть команды, которые позволят вам проверить управляемую кучу, объекты и их ссылки и так далее.

Для получения дополнительной информации см. Отличный блог Тесс .

Для другого примера использования SOS см. этот вопрос .

3 голосов
/ 24 августа 2010

Существует расширение .NET для отладчика Microsoft под названием «SoS», которое позволяет вам проверять память и другие внутренние структуры .NET CLR.

Это довольно низкоуровневый инструмент, поэтому потребуется некоторое время, чтобы освоить его использование. Я бы порекомендовал поискать учебники, следующие за ними.

Также стоит поискать SoS , управление памятью и утечки памяти вопросов по StackOverflow.

2 голосов
/ 24 августа 2010

Вам нужен хороший отладчик, он способен на детали, что происходит за кулисами. Вы можете начать с Visual Studio, если этого недостаточно, попробуйте более сложные отладчики, такие как IDA или OllyDbg.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...